Zählenwenn plus Zeichen löschen als Schleife
#1
Hallo zusammen, 

ich bin ein absoluter Neuling in VBA und habe eine komplexe Aufgabe, weswegen ich für jede Hilfe und Idee sehr dankbar bin. 


Zur Aufgabe (was programmiert werden soll): 

Es soll gezählt werden wie oft ein Code in einer Spalte vorkommt. Wenn dieser Code weniger als 20 mal in der Spalte vorkommt sollen die letzten Zeichen des Codes (in jeder Zelle in der dieser Code vorkommt) bis zum nächsten Leerzeichen von rechts gelöscht werden, damit dieser sozusagen unspezifischer wird, und anschließend gekürzt in einer anderen Spalte angezeigt werden. Wenn ein Code häufiger als 20 mal vorkommt, dann soll er eins zu eins in die nächste Spalte übernommen werden. 

Dieser Schritt soll mehrmals (2 oder 3 mal)  ausgeführt werden, sozusagen als Schleife. 

Beispiel:

Folgender Code ist in einer Spalte nur 5 mal: xxx ppp 267 xy
---> daher soll dieser von rechts bis zum nächsten Leerzeichen gekürzt werden, damit in der nächsten Spalte daraus folgender Code wird: xxx ppp 267



Ich bin für jegliche Vorschlag bei der Umsetzung dankbar! 


Vielen Dank im Voraus!
Top
#2
Hallo,

ich habe Deine Frage ins Excel-Forum geschoben. Du hast sie im Beispielbereich gepostet ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • NeulingSH
Top
#3
Hallo,

teste mal damit:
Sub Test()
Dim i As Long, j As Long, k As Long
Dim rngA As Range
Dim varA As Variant, varB As Variant, varT As Variant
Set rngA = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
varA = rngA.Value
ReDim varB(1 To UBound(varA), 1 To 1)
For i = 1 To UBound(varA)
varT = Split(varA(i, 1))
k = Len(varA(i, 1))
For j = UBound(Split(varA(i, 1))) To 0 Step -1
If Application.CountIf(rngA, Left(varA(i, 1), k) & "*") > 19 Then
varB(i, 1) = Left(varA(i, 1), k)
Exit For
End If
k = k - Len(varT(j)) - 1
Next j
Next i
rngA.Offset(, 1).Value = varB
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • NeulingSH
Top
#4
Vielen Dank für das Verschieben! 

Viele Grüße, 
NeulingSH

Hallo Uwe, 

vielen Dank für deine Mühe und Hilfe! 
Ich werde den Code gleich ausprobieren. 


Viele Grüße, 
NeulingSH
Top


Gehe zu:


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