Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro, das Nummern richtig einordnet

Makro, das Nummern richtig einordnet
01.10.2006 16:51:16
Matthias
Hi,
fogendes möchte ich in Excel mittels VBA realisieren. Da ich VBA-Anfänger, hoffe ich hier Hilfe zu bekommen:
Eine Excel-Datei hat zwei Tabellenblätter. Im Blatt "Nummern" stehen zeilenweise Datensätze, bestehend aus Nummern und dazugehörigen Info-Texten. Die Nummern in Spalte A beginnen immer mit einer 2, die in Spalte B immer mit einer 3. Alle diese Nummern sollen nun per Makro an die richtigen Stellen im Blatt "Gesamtliste" kopiert werden. Die Position (d.h. Zeile und Spalte), wohin eine Nummer in die Gesamtliste kopiert werden soll, ergibt sich wie folgt:
- Die Bezeichnung der Spalte ergibt sich bei der 2er-Nummer aus den ersten drei Stellen des Inhalts, der in der Spalte "Größe" in der Basistabelle steht (hier: 200). Bei einer 3er-Nummer ergibt sich die Bezeichnung der Spalte auch aus diesen drei Stellen plus einem "S" (hier: 200S).
- Die Bezeichnung der Zeile ergibt sich aus dem Materialkurztext, wobei die drei Punkte immer ... nur ein Platzhalter für die Größe (hier 200) sind. Anmerkung: Hier wird es knifflig, da der Materialkurztext aus dem Blatt "Nummern" nicht immer 100%ig mit dem aus dem Blatt "Gesamtliste" übereinstimmt. Vielleicht geht es ja trotzdem irgendwie...
Ein Beispiel: Die Nummer 20011687 aus der Basistabelle muss in Zelle F108, die 30014394 muss an Position G108.
Hier die Datei: https://www.herber.de/bbs/user/37115.xls
Klingt etwas kompliziert, oder ;-) Das Ziel des Ganzen sollte aber klar sein. Ich bin für jeden Vorschlag offen, es muss ja nicht gleich eine "Komplettlösung" sein...
Grüße
Matthias

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro, das Nummern richtig einordnet
01.10.2006 17:54:15
Daniel
"Hier wird es knifflig, da der Materialkurztext aus dem Blatt "Nummern" nicht immer 100%ig mit dem aus dem Blatt "Gesamtliste" übereinstimmt."
Das könnte ein Problem werden.
Die Texte sollten schon 100% übereinstimmen, sonst gehts nicht, oder wird zu ungenau (schließlich unterscheiden sich die Bezeichnungen ja manchmal nur in einem Buchstaben.)
dh. in der Gesamtliste müssten die Zusastztexte in Klammern raus oder in eine separate Spalte geschrieben werden, und bei den Bezeichnungen in Nummern müssten die Größenbezeichnungen auch durch ... ersetzt werden (schließlich steht die Größe ja in einer extraspalte)
Wenn das gegeben ist, könnte man es auch irgendwie ohne Makro mit nem SVerweis oder Kombinationen aus Index und Vergelich hinbekommen.
Gruß, Daniel
Anzeige
AW: Makro, das Nummern richtig einordnet
01.10.2006 18:04:40
Matthias
OK stimmt,
dann präzisiere ich meine Aussage: Die Texte auf dem Blatt "Gesamtliste" sind gleich den Texten auf dem Blatt "Nummern", allerdings muss das "DS" am Ende entfernt werden und statt ... muss die Größe (hier: 200) eingesetzt werden. Wenn man den Text so bearbeitet, stimmen sie überein (bzw. wir gehen davon aus!).
Gruß
Matthias
AW: Makro, das Nummern richtig einordnet
01.10.2006 21:32:25
Herby
Hallo Matthias,
mit dem Makro kannst du im Arbeitsblatt "Nummern" in der 3. Spalte
den Materialkurztext abändern und zwar so, dass er ohne dem "DS" erscheint. sicherheitshalber wird der gekürzte Text baw. in die 7.Spalte geschrieben.
Desweiteren wird ein Vergleich der Materialkurztexte durchgeführt. Vielleicht
hilfts dir beim vereinheitlichen der Texte.

Sub suche()
Dim lZ As Long, i As Long, wo As Integer, lZGesamt As Long
Dim Inhalt As String, Inhalt1 As String
Dim wksGesamt As Worksheet, wksNrn As Worksheet
Dim c As Range
Dim Startadresse As String
Set wksGesamt = Worksheets("Gesamtliste")
Set wksNrn = Worksheets("Nummern")
wksNrn.Activate
lZ = Cells(Rows.Count, 3).End(xlUp).Row + 1
For i = 2 To lZ
Inhalt = Cells(i, 3).Value
wo = InStr(1, Inhalt, " DS", 1)
If wo > 0 Then
Inhalt = Mid(Inhalt, 1, wo - 1)
Cells(i, 7) = Inhalt
' nun die Texte in der Gesamtliste suchen
wksGesamt.Activate
lZGesamt = wksGesamt.Cells(Rows.Count, 1).End(xlUp).Row
With wksGesamt.Range("A3:A" & lZGesamt)
Inhalt1 = Left(Inhalt, Len(Inhalt) - 6) ' Suche ohne die 200 C
Set c = .Find(Inhalt1, LookIn:=xlValues, lookAt:=xlPart)
If Not c Is Nothing Then
Startadresse = c.Address
Do
Application.Goto Reference:=wksGesamt.Range("A" & c.Row)
MsgBox "Gesuchter Begriff: " & Inhalt & Chr(10) & "Gefundener Begriff: " & c.Value & Chr(10) & "in Zeile: " & c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> Startadresse
End If
End With
wksNrn.Activate
End If
Next i
End Sub

Gibt es eigentlich für die Gesamtliste eine eindeutige Zuordnungsmöglichkeit zur Basistabelle. Wenns die noch nicht gibt, dann ist sie für eine EDV-mäßige Bearbeitung dringend erforderlich. Denn sonst gibts immer wieder falsche Zuordnungen.
Viele Grüße
Herby
Anzeige
AW: Makro, das Nummern richtig einordnet
02.10.2006 14:20:24
Matthias
Hi!
vielen Dank, Herby, sehr beeindruckend, dass das schon so gut funktioniert! Mit Deinem Code findet Excel zu jedem Suchbegriff zwei Ergebnisse (einmal mit "C" und einmal ohne "C"). Ist es auch machbar, dass immer die passende Zelle gefunden, sprich wenn der Suchtext "C" enthält, soll auch nur die Zelle mit "C" gefunden werden. Beispiel: Beim Suchtext "Rotierende Teile ESV 200 C" soll nur Zelle A49 und nicht Zelle A48 gefunden werden. Wenn das gehen würde, wäre es schon ziemlich perfekt.
Grüße
Matthias
AW: Makro, das Nummern richtig einordnet
04.10.2006 15:38:58
Herby
Hallo Matthias,
ich hab mal die aktuelle Version deiner Datei hier eingestellt. Vielleicht bist du noch an einer Lösung interessiert:
https://www.herber.de/bbs/user/37170.xls
Viele Grüße
Herby
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige