Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

doppelte Zahl finden und kennzeichnen

doppelte Zahl finden und kennzeichnen
31.05.2006 18:26:33
Micha
Hallo Leute,
ich habe gestern von Peter (danke dir noch einmal Peter...) einen VBA Code bekommen, welcher mir in der Spalte A alle doppelten Zahlen sucht und diese mit einem "D" kennzeichnet. D.h. hinter jeweils beide Zahlen wird ein "D" geschrieben.
Nun aber die Herausforderung: Ich brauche das "D" nur an der zweiten oder ersten doppelten Zahl. Wo wäre mir egal.
Kann mir jemand dabei helfen?
Hier der Code:
============================================================================
Sub Doppeltes() Dim lZeile As Long Dim lLetzte As Long Dim Bereich As Range Dim aVar As Variant lLetzte = Range("A65536").End(xlUp).Row ' letzte belegte Zeile ermitteln Set Bereich = Range("A1:A" & lLetzte) ' abzusuchenden Bereich festlegen ReDim aVar(lLetzte) For lZeile = 1 To lLetzte If WorksheetFunction.CountIf(Bereich, Range("A" & lZeile).Value) > 1 Then aVar(lZeile) = "D" End If Next lZeile For lZeile = 1 To lLetzte If aVar(lZeile) = "D" Then ' wurde ein D eingetragen ? Range("A" & lZeile).Value = Range("A" & lZeile).Value & aVar(lZeile) End If Next lZeile End Sub
==========================================================================
Danke Euch,
Gruß Micha

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: doppelte Zahl finden und kennzeichnen
31.05.2006 18:43:11
Erich
Hallo Micha,
das folgende Makro versieht alle Werte mit einem "D", wenn dieser Wert darunter noch einmal auftaucht. Wenn Werte auch mehr als zweimal vorkommen, könntest du das Makro auch mehrmals aufrufen. Sub Doppeltes2() Dim lZeile As Long Dim lLetzte As Long Dim Bereich As Range lLetzte = Range("A65536").End(xlUp).Row ' letzte belegte Zeile ermitteln Set Bereich = Range("A1:A" & lLetzte) ' abzusuchenden Bereich festlegen For lZeile = 1 To lLetzte If WorksheetFunction.CountIf(Bereich, Range("A" & lZeile).Value) > 1 Then Range("A" & lZeile).Value = Range("A" & lZeile).Value & "D" End If Next lZeile End Sub Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: doppelte Zahl finden und kennzeichnen
31.05.2006 21:26:12
Peter
Hallo Micha,
das war doch mein erstes Makro (erste Antwort von gestern), das nur immer das erste Vorkommen der Zahl kennzeichnete. Was ist aber, wenn deine Zahl mehr als zweimal vorkommt?
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: doppelte Zahl finden und kennzeichnen
01.06.2006 10:30:41
Erich
Hallo Micha,
meins du so? Option Explicit Sub Doppelte3() ' hängt an alle Werte in A, die weiter oben schon mal vorkommen, ein "D" an Dim lngZ As Long For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf _ (Range(Cells(1, 1), Cells(lngZ - 1, 1)), Cells(lngZ, 1)) > 0 Then _ Cells(lngZ, 1) = Cells(lngZ, 1) & "D" Next lngZ End Sub Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: doppelte Zahl finden und kennzeichnen
01.06.2006 15:30:44
Micha
Hallo Peter, Hallo Erich,
Danke Euch erst einmal ganz dolle. Beide Versionen funktionieren super. Nun will ich noch was überprüfen:
Wenn eine Zahl doppelt vorkommt, dann soll geprüft werden ob in der Spalte daneben (gleiche Zeile) ein "unbesetzt" steht. Wenn ja, dann wäre ein "D" an der Zahl toll. Die andere Zahl, wo NICHT "unbesetzt" steht, sollte dann so bleiben wie sie ist. Geht das auch noch?
Danke Euch,
Gruß Micha
AW: doppelte Zahl finden und kennzeichnen
01.06.2006 17:02:29
Erich
Hallo Micha,
deine Aufgabenstellung ist nur zum kleineren Teil klar.
Du hast das Ergebnis für die Zahl 11 beschrieben, nicht aber,
was in den anderen möglichen Fällen herauskommen soll:
 
 ABC
1ZahlTextZahl wird zu
211 11
311unbesetzt11D
4   
512 ?
612 ?
7   
813unbesetzt?
913unbesetzt?
10   
1114unbesetzt14D
1214 ?
1314 ?
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: doppelte Zahl finden und kennzeichnen
01.06.2006 18:05:33
Micha
Hallo Erich,
ich muss mich entschuldigen. Ich habe irgendwie einen Denkfehler in meinen ganzen Dateien und etwas durcheinander gebracht. Sorry, hier noch einmal die richtige Version, welche ich gerade bekommen habe:
Wenn eine Zahl doppelt ist, dann muss VOR die Zahl eine "9". Gibt es die Zahl dann noch einmal, was relativ unwahrscheinlich ist aber sein kann, muss vor die dritte gleiche Zahl eine "8". Das es die Zahl vier Mal gibt ist ausgeschlossen. Das "unbesetzt" ist dabei völlig egal.
Das Ergebnis soll so aussehen:
1000 1000 Zahl (normal)
1000 91000 einmal doppelt
1000 81000 zweimal doppelt
Danke für deine Unterstützung und sorry noch einmal für meine Schussligkeit.
Gruß Micha
Anzeige
AW: doppelte Zahl finden und kennzeichnen
01.06.2006 20:03:46
Erich
Hallo Micha,
unten sind zwei Makros (Nr. 4 und 5), die liefern
 
 ABCD
1Makro 4Makro 5 Quelle
21111 11
391190011 11
4    
544 4
69490004 4
78480004 4
8    
91515 15
1091590015 15
11    
1210001000 1000
139100091000 1000
14    
1520002000 2000
169200092000 2000
178200082000 2000
188200082000 2000
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Bei Makro 4 wird einfach vor die Zahl eine 9 oder 8 gesetzt.
Bei Makro 5 lassen sich die Dubletten leicht ans Ende oder den Anfang sortieren,
da sie eine einheitliche Stellenzahl haben und größer als alle anderen Zahlen sind.
Wenn deine Zahlen alle eine einheitliche Stellenzahl haben, ist es egal, welches Makro du nimmst.
Option Explicit
Sub Doppelte4()
'              stellt vor alle Werte in A, die weiter oben einmal vorkommen, eine 9
'              stellt vor alle Werte in A, die weiter oben mehr als einmal vorkommen, eine 8
Dim lngZ As Long, lngC As Long
For lngZ = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
lngC = WorksheetFunction.CountIf _
(Range(Cells(1, 1), Cells(lngZ - 1, 1)), Cells(lngZ, 1))
If lngC = 1 Then
Cells(lngZ, 1) = 1 * ("9" & Cells(lngZ, 1))
ElseIf lngC > 1 Then
Cells(lngZ, 1) = 1 * ("8" & Cells(lngZ, 1))
End If
Next lngZ
End Sub
Sub Doppelte5()
Dim lngZ As Long, lngC As Long, lngM As Long, lngF As Long
lngM = WorksheetFunction.Max(Columns(1))
lngF = 1 * ("1" & String(Len(Format(lngM, "00")), "0"))
For lngZ = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
lngC = WorksheetFunction.CountIf _
(Range(Cells(1, 1), Cells(lngZ - 1, 1)), Cells(lngZ, 1))
If lngC = 1 Then
Cells(lngZ, 1) = 9 * lngF + Cells(lngZ, 1)
ElseIf lngC > 1 Then
Cells(lngZ, 1) = 8 * lngF + Cells(lngZ, 1)
End If
Next lngZ
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Vielen Dank, genau so brauche ich es...
02.06.2006 08:32:24
Micha
... Danke dir das Du dir die Mühe gemacht hast. Ich hätte es allein nicht geschafft. Ich nutze Makro4, da alle Zahlen die gleiche Anzahl Zahlen haben.
Viele Grüße
Micha
AW: doppelte Zahl finden und kennzeichnen
02.06.2006 12:54:21
Micha
Eine Frage habe ich mal noch:
woran sieht Excel, das es in der Spalte A prüfen soll.
Ich brauche das dann noch einmal in Spalte E...
Danke dir...
Gruß Micha
AW: doppelte Zahl finden und kennzeichnen
02.06.2006 14:30:31
Erich
Hallo Micha,
in dem Ausdruck Cells(x, y) bezeichnet y die Spaltennummer.
Bisher ist y immer die 1 (für Spalte A).
Für Spalte E änderst du überall Cells(xxx, 1) in Cells(xxx, 5) , dann sollte es klappen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: doppelte Zahl finden und kennzeichnen
02.06.2006 15:22:13
Micha
super, funktioniert. ich habe den code einfach kopiert und verändert.
danke dir.
Gruß Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige