Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
356to360
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
356to360
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

...brauche ein kleines Makro

...brauche ein kleines Makro
30.12.2003 17:38:55
Bollek2002
Ich habe zwei Tabellen mit jeweils 8 Spalten und zuzsammen etwas mehr als 92.000 Zeilen. In Spalte A habe ich "Steckerbezeichnungen". Diese sollen nicht verändert werden. Zu den Steckerbezeichnungen gehören System, die in der Tabelle mit dem Muster "00-77-00" oder aber "21-00-00" oder ähnliches angegeben sind. Diese Muster sind leider in den Spalten C bis H verstreut. Ich möchte nun eine Möglichkeit haben, den Computer Zeile für Zeile in den Spalten C bis H nach diesem Muster suchen zu lassen. Wenn er in einer Zeile ein entsprechendes Muster gefunden hat, soll es den Inhalt der Zelle in Spalte J der GLEICHEN!!! Zeile kopieren. Ich habe schon reichlich mit Formeln experimentiert. Ich finde aber keine Möglichkeit Excel zu sagen, es solle einen Zelleninhalt auf 2 Bindestriche untersuchen.
Wer weiss weiter ???

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ...brauche ein kleines Makro
30.12.2003 18:15:21
Bollek2002
Userbild
AW: ...brauche ein kleines Makro
30.12.2003 19:04:48
Josef Ehrensberger
Hallo ? (siehe Forums-FAQ)

geht auch ohne Makro!
Deine Werte mit dem Format (00-00-00) stehen in den Spalten "B - I"
schreib in "J2" für die Zeile 2 diese Formel.

{=WENN(ISTNV(INDEX(B2:I2;VERGLEICH(FALSCH;ISTFEHLER(SUCHEN("-**-";B2:I2));0)));"";INDEX(B2:I2;VERGLEICH(FALSCH;ISTFEHLER(SUCHEN("-**-";B2:I2));0)))}

Achtung Matrixformel!
Die geschweiften klammern nicht direkt eingeben sondern
mit STRG+SHIFT+ENTER erzeugen (Cursor in der bearbeitungsleiste).

Formel runterkopieren.

Gruß Sepp
Anzeige
AW: ...brauche ein kleines Makro
30.12.2003 19:36:50
Bollek2002
Vielen Dank Josef! Es funktioniert super.
Danke für die Rückmeldung (o.T.)
30.12.2003 20:03:38
Josef Ehrensberger
/
AW: ...brauche ein kleines Makro
30.12.2003 20:11:16
Bollek2002
Kann man diesen Suchvorgang auch mit VBA schreiben? Wenn ja, kann man VBA anweisen, Zeilen zu löschen, die in den Spalten B bis I kein Muster enthalten?

Dann noch etwas: Am aller besten wäre es, wenn man diesen Vorgang per Symbol starten könnte. Wenn mein "Projekt" erfolgreich sein soll, dann muß jedermann diese "Datenaufbereitung" erledigen können.

Was meinst du?
VBA-Lösung
30.12.2003 21:13:27
Josef Ehrensberger
Hallo ?,

hier hab ich Dir ein kleines Makro geschrieben,
das die gefundenen "Muster" in Spalte "J" schreibt
und alle Zeilen in denen kein "Muster" gefunden wurde löscht.


Achtung! Wenn Du alle Zeilen (65536) als bereich definierst,
dann dauert es eine ganze weile bis das Makro mit der Arbeit
fertig ist.

Zum aufrufen des Makros verwendest Du am besten eine
Schaltfläche aus der Formular-Werkzeugleiste und weist das
Makro zu.

Viel Spass!



Sub DoppeltFinden_Loeschen()
Dim rngS As Range
Dim rng As Range
Dim lngR As Long
Dim lngE As Long
lngE = Sheets("TB1").UsedRange.Rows.Count
Set rngS = Sheets("TB1").Range("C2:I" & lngE)
'Tabellennamen anpassen - Bereich anpassen
Application.ScreenUpdating = False
   With rngS
      For lngR = rngS.Rows.Count To Step -1
      Set rng = .Rows(lngR).Find(What:="??-??-??", LookAt:=xlWhole, LookIn:=xlValue)
         If Not rng Is Nothing Then
         Cells(rng.Row, 10) = rng
         Else
         .Rows(lngR).EntireRow.Delete
         End If
      Next
   End With
Application.ScreenUpdating = True
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Gruß Sepp
Anzeige
AW: VBA-Lösung
30.12.2003 21:23:52
Bollek2002
Danke Josef für die schnelle Hilfe!

Es hat sich noch ein Problem aufgetan. Es tritt sehr häufig der Fall auf, dass ein Wert wie z.B. B0801300-22-9 . Dieser Wert wird von der Matrix-Formel als "Treffer" erkannt, weil ich mich darauf verlassen habe, dass nur mein gesuchtes Wertemuster 2 Bindestriche enthält. Jetzt steh' ich wieder da :----)

Die Bearbeitungszeit ist wirklich erstaunlich. Mein Schläpptop mit Athlon 2200 hat echt zu kämpfen. Der Import in meine Access-Datenbank ist auch nicht ohne. über 4 min. für 65000 Zeile. Hossa !

Bis gleich! ....Dirk
AW: VBA-Lösung
30.12.2003 22:10:22
Josef Ehrensberger
Hallo Dirk,

an der Matrixformel für die neue Herausforderung
hab ich mir bis jetzt die Zähne ausgebissen, aber
noch gebe ich nicht auf.


Im Bezug auf das Makro, glaub ich gerne das der
Athlon ins schwitzen kommt.

Nocheins wenn du die Matrixformel verwendest, währe es
vieleicht von Vorteil, wenn Du die Automatische Berechnung
für diese Tabelle deaktivierst. >Extras>Optionen>Berechnung.

Du kannst dann die Tabelle mit F9 berechnen.

Gruß Sepp
Anzeige
AW: VBA-Lösung / Access
01.01.2004 11:19:52
Bollek2002
Hallo Josef!....Frohes neues Jahr!

Ich habe gestern noch mal schnell die überarbeitete Liste in Access importiert.
Dann habe ich mittels Filterfunktion alle Zeilen löschen können, in denen kein
muster 00-00-00 enthalten war. Soweit ich weiß kann man das nur über Access machen, weil Access beim Sortieren einer Spalte, die anderen Spalten entsprechend mitverändert (eine Zeile = ein Datensatz).
Beim Excel fällt man damit ja gnadenlos auf Gesicht.
Jedenfalls habe ich innerhalb von einer halben Stunde die Datensätze auf über die Hälfte reduziert. Jetzt sind es nur noch ca. 31.000.

Für den Aufbau einer Stecker-Datenbank ist die Tabelle jetzt geeignet. Jetzt mache ich mich gerade in Access schlau, wie das mit den Datenbanken funktioniert. Das kann jetzt noch ein paar Tage dauern. Aber auch bei Access ist ist das Nonplusultra die Programmierung mit VBA. Ich komm' da einfach nicht drummrumm :---)

Vieleicht kannst du mir ja ab und zu nochmal helfen.

MfG...Dirk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige