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

Nummern in die richtige Spalte einordnen (VBA)

Nummern in die richtige Spalte einordnen (VBA)
03.10.2006 12:36:25
Matthias
Hi zusammen!
die mein Vorhaben relativ komplex ist, eröffne ich nochmal einen neuen Beitrag. Ich möchte ein Makro bauen, das Nummern aus einem Tabellenblatt in ein anderes Blatt an die richtige Position schreibt. Für die Position muss die richtige Zeile und die richtige Spalte bestimmt werden. Das mit der Zeile klappt schon ganz gut, für die Spalte habe ich noch keinen Code. Ich erkär mal wie es gehen soll: Im Blatt Nummern befinden sich zeilenweise Datensätze, jeder von ihne enthält zwei Nummern (eine beginnt mit 2, eine mit 3) sowie Info-Texte. Die Spalte im Blatt "Gesamtliste", in die die Nummern kopiert werden sollen, ergibt sich so:
Um eine Nummer einzuordnen, sollen die ersten drei Stellen aus der Spalte "Größe" (also hier: 200 bzw. 200S) der Spaltenüberschrift im Blatt "Gesamtliste" entsprechen.
Dabei soll eine Nummer aus Spalte A des Blatts "Nummern" in die nach der Größe benannten Spalte des Blatts "Gesamtliste" (hier: 200, also Spalte E) eingeordnet werden;
eine Nummer aus Spalte B des Blatts "Nummern" soll in die Spalte der Gesamtliste eingefügt werden, die den Namen "Größe + S" hat (also hier: 200S, Spalte F).
Hier die Datei: https://www.herber.de/bbs/user/37149.xls
Ich hoffe, ihr versteht wie ich das meine, es müsste doch eigentlich machbar sein. Danke schon mal.
Gruß
Matthias

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nummern in die richtige Spalte einordnen (VBA)
03.10.2006 13:28:24
Daniel
Hallo,
das ist auch wesentlich einfacher mit folgender Funktion:
Spalte = WorksheetFunction.Match(CInt(Left(Sheets("Nummern").Cells(xxx, 4).Value, 3)), Sheets("Gesamtliste").Rows(1), 0)
ermittelst du die Spalten-Nr für den ersten Wert, der zweite ist dann ja dieser +1
Da wo in der Formel xxx steht, muß natürlich die Zeilennummer rein, die du gerade bearbeitest.
gruß, Daniel
AW: Nummern in die richtige Spalte einordnen (VBA)
03.10.2006 14:39:47
Matthias
Danke,
klingt schon mal logisch, ich weiß aber nicht ob ich das programmiertechnisch alleine hinbekomme. Ich probiere es mal, wäre aber nett, wenn mir jemand beim Code etwas unter die Arme greift...
Matthias
Anzeige
AW: Nummern in die richtige Spalte einordnen (VBA)
03.10.2006 15:45:11
Daniel
Hallo
im Prinzip innerhalb der DO-Schleife irgendwo einbauen.
Du ermittelst damit die Spalten-Nr und kannst den Wert bspw einer Long-Variable zuweisen.
Der Wert für die Zeile (xxx) ist in deinem Beispiel c.row, also wenn "Spalte" als Long-Variable definiert wurde, dann
Spalte = WorksheetFunction.Match(CInt(Left(Sheets("Nummern").Cells(c.row, 4).Value, 3)), Sheets("Gesamtliste").Rows(1), 0)
Gruß, Daniel
AW: Nummern in die richtige Spalte einordnen (VBA)
03.10.2006 15:59:26
Matthias
Hm,
etwas so? https://www.herber.de/bbs/user/37151.xls

Sub SucheZelle()
Dim Spalte As Long
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)
Set c = .FindNext(c)
Spalte = WorksheetFunction.Match(CInt(Left(Sheets("Nummern").Cells(c.Row, 4).Value, 3)), Sheets("Gesamtliste").Rows(1), 0)
MsgBox "Gesuchter Begriff: " & Inhalt & Chr(10) & "Gefundener Begriff: " & c.Value & Chr(10) & "in Zeile: " & c.Row & Chr(10) & "Vorschlag Einordnung: Zeile " & c.Row & Spalte
Loop While Not c Is Nothing And c.Address <> Startadresse
End If
End With
wksNrn.Activate
End If
Next i
End Sub

...funktioniert nur leider noch nicht.
Matthias
Anzeige
AW: Nummern in die richtige Spalte einordnen (VBA)
03.10.2006 16:51:25
Daniel
Hallo
ja, so in etwa
habe nur gerade festgestellt, die korrekte Zeilen-Nr für die Match-Funktion ist nicht C.row sondern i.
Dann sollte es gehen.
(C.row ist die Zeilen_Nr aus dem Sheet Gesamtliste, aber für die Match-Funktion brauch ich ja den Wert aus dem Sheet Nummern, daher muß es i seien.)
Gruß, Daniel
AW: Nummern in die richtige Spalte einordnen (VBA)
04.10.2006 15:30:14
Herby
Hallo Matthias,
habs mir nochmal angeschaut und ein bischen gändert. Dabei habe ich dann auch die Spalten mit berücksichtigt. Soweit ich es beurteilen kann funktionierts. Jedoch werden die gewünschten Zeilen nicht immer gefunden, weil die Texte nicht identisch sind.
https://www.herber.de/bbs/user/37170.xls
Viele Grüße
Herby
Anzeige
AW: Nummern in die richtige Spalte einordnen (VBA)
07.10.2006 17:40:33
Matthias
Hi Herby,
danke danke danke!!! Das ist wirklich supernett, dass Du das so weit programmiert hast. Ich habe das Makro getestet, und es scheint wirklich die Nummern an die korrekten Positionen zu kopieren. Dass nichts kopiert wird, wenn die Texte nicht übereinstimmen, finde ich sogar ganz gut. Es ist sehr wichtig, dass das Makro zuverlässig arbeitet und nichts falsch einordnet. Ich werde es diesbeüglich aber noch mal ausgiebig testen.
Somit ist ja die "Grundfunktionalität" schon mal da, was ich jetzt noch vorhabe ist "Feinschliff". Ich sage aber ganz deutlich, dass ich hier nichts fordern möchte oder so, ich bin schon froh, dass Du mir bis zu diesem Punkt geholfen hast. Wenn es Dich interessiert oder Du Spaß dran hast, kannste ja weiterlesen ;-)
Ich schreibe einfach mal, wie ich mir das Ganze letzten Endes vorstelle:
- Der ganze Prozess soll so weit wie möglich automatisch ablaufen, d.h. Dateiauswahl und Suche müssen in ein gemeinsames Makro.
- In Deiner Datei sind (zu Testzwecken, klar) ziemlich viele MsgBoxes. Was mir vorschwebt, ist, dass nur am Ende des gesamten Zuordnungs-Prozesses eine einzige MsgBox gezeigt wird und eine Art Zusammenfassung liefert, und zwar z.B. so: 15 von 17 Nummern konnten eindeutig zugeordnet werden. 2 von 17 Nummern konnten nicht eindeutig zugeordnet werden.
- Der Inhalt (ab Zeile 2) des Blatts "Nummern" sollte am Anfang des Makros gelöscht werden, damit keine alten Daten mehr drinstehen.
- Um das Ganze zu perfektionieren. könnte man noch im Blatt "Nummern" eine Spalte "Erfolg des Imports" einfügen, in der "ja" oder "nein" steht, je nach dem, ob die Nummern eindeutig zugeordnet werden konnten. Hier könnte man dann über "Bedingte Formatierung" wunderbar grün bzw. rot einfärben.
Wie gesagt, ich erwarte hier nichts, bin aber natürlich für jeden Tipp dankbar...
Gruß und schönes Wochenende noch,
Matthias
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige