Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
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
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Alexandra, Sub Makro4() Range("B1:B6").FormulaR1C1 = "=""Begriff kommt das ""&COUNTIF(R1C[-1]:RC[-1],RC[-1])&"". Mal vor""" End Sub Gruß Uwe
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
30.03.2019, 14:49
(Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2019, 14:55 von Elex.)
Uwe hat deine Vorgaben verstanden.
Ich hatte A und B als Spalten Verstanden und nicht als unterschiedliche Begirffe.
Gruß Elex
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Alexandra, (30.03.2019, 15: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
Registriert seit: 29.09.2015
Version(en): 2030,5
30.03.2019, 16:34
(Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2019, 16:42 von snb.)
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
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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! 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
Registriert seit: 29.09.2015
Version(en): 2030,5
30.03.2019, 17:32
(Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2019, 17:41 von snb.)
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
|