Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spalte auf mehrfach vorkommende Werte prüfen und...
#1
Hallo zusammen,


ich habe ein Frage! :)

Wie kann ich per VBA ein Spalte durchsuchen und mir immer die Zelle ausgeben lassen:

1. wo ein Begriff das erste mal vorkommt
2. dann  das zwei mal vorkommt
3. dann das dritte mal vorkommt usw....
und dann in Spalte B daneben reinschreibt "Begriff kommt das x mal vor"
Beispiel in Spalte A:

A - Begriff kommt das 1. Mal vor
A - Begriff kommt das 2. Mal vor
A - Begriff kommt das 3. Mal vor
B - Begriff kommt das 1. Mal vor
A - Begriff kommt das 4. Mal vor
B - Begriff kommt das 2. Mal vor

Vielen Dank im Voraus
LG
Alexandra
Antworten Top
#2
Hi

wenn ich mir deine bisherigen Beiträge anschaue, sollten dir die Hinweise auf

Range.Find-Methode
Range.FindNext-Methode

reichen.

Wenn nicht Melde dich noch mal.

Gruß Elex
Antworten Top
#3
Hi Elex,

dank für dein Hinweis, ja, ein festen wert finden das kann ich aber ich weiß nicht wie ich das formulieren muss damit es mit den Werten in der Spalte sucht und findet!


Kannst du mir auf die Sprünge helfen?

Danke
LG
Alexandra
Antworten Top
#4
Hallo Alexandra,
Sub Makro4()
Range("B1:B6").FormulaR1C1 = "=""Begriff kommt das ""&COUNTIF(R1C[-1]:RC[-1],RC[-1])&"". Mal vor"""
End Sub
Gruß Uwe
Antworten Top
#5
Uwe hat deine Vorgaben verstanden.

Ich hatte A und B als Spalten Verstanden und nicht als unterschiedliche Begirffe.


Gruß Elex
Antworten Top
#6
Hallo Uwe,


:16:

die Formel ohne VBA kenne ich! :)
Aber, auf die Idee die Formel einfach auf die Range zu kopieren bin ich nicht gekommen!

Nur Interessehalber, gibt es auch Möglichkeiten ohne Formel, rein VBA? 
Mir reichen Stichworte oder Links zu Beispielen!

Vielen Dank auch an Elex

LG
Alexandra
Antworten Top
#7
Hallo Alexandra,

(30.03.2019, 14:50)cysu11 schrieb: Nur Interessehalber, gibt es auch Möglichkeiten ohne Formel, rein VBA? 

klar, z.B.:
Sub Makro1()
 With Range("B1:B6")
   .Formula = "=""Begriff kommt das ""&COUNTIF(A$1:A1,A1)&"". Mal vor"""
   .Value = .Value
 End With
End Sub
und ganz ohne Excelfunktionen dann z.B. so:
Sub Makro2()
 Dim i As Long, j As Long, k As Long
 With Range("A1:A6")
   .Offset(, 1) = ""
   For i = 1 To .Cells.Count
     k = 0
     For j = 1 To i
       If .Cells(i, 1).Value = .Cells(j, 1).Value Then
         k = k + 1
         If .Cells(j, 1).Offset(, 1) = "" Then
           .Cells(j, 1).Offset(, 1).Value = "Begriff kommt das " & k & ". Mal vor"
           Exit For
         End If
       End If
     Next j
   Next i
 End With
End Sub
Gruß Uwe
Antworten Top
#8
Code:
Sub M_snb()
  Columns(1).SpecialCells(2).Name = "snb"
  [snb].Offset(, 1) = [index(snb & "_kommt " & countif(snb,snb) & " Mal vor",)]
End Sub

Oder

Code:
Sub M_snb()
  sn = Columns(1).SpecialCells(2)

  For j = 1 To UBound(sn)
     sn(j, 1) = sn(j, 1) & " kommt " & UBound(Filter(Split("_" & Join(Application.Transpose(sn), "_|_") & "_", "|"), "_" & sn(j, 1) & "_")) + 1 & " Mal vor"
  Next
  
  Columns(1).SpecialCells(2).Offset(, 1) = sn
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Hi Uwe,

das funktioniert prima, ich würde gerne wissen wofür stehen k und j?

Danke sehr schon mal

@snb, Danke für deine Versionen, diese tun aber nicht ganz was ich wollte!  Huh

Es sollte immer heißen, Begriff kommt das 1. Mal vor, Begriff kommt das 2. Mal vor usw. aber von oben nach unten! 

LG
Alexandra
Antworten Top
#10
Stichworte weder eines Beispiel reichten offensichtlich nicht....

Code:
Sub M_snb()
  sn = Columns(1).SpecialCells(2)

  For j = 1 To UBound(sn)
     sn(j, 1) = sn(j, 1) & " kommt das " & UBound(Filter(Application.Transpose(sn), sn(j, 1) & " kommt")) + 2 & ".  Mal vor"
  Next
 
  Columns(1).SpecialCells(2).Offset(, 1) = sn
End Sub

oder

Code:
Sub M_snb()
  Columns(1).SpecialCells(2).Name = "snb"
  [snb].Offset(, 1) = [index(snb & " kommt " & countif(offset(A1,,,row(snb)),snb) & ".Mal vor",)]
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste