Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1320to1324
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
Inhaltsverzeichnis

Werte aus Tabelle in andere Tabelle eintragen

Werte aus Tabelle in andere Tabelle eintragen
02.07.2013 08:29:44
Dennis
Hallo zusammen,
ich habe ein kleines Problem bei dem ich mit meinen recht einfach gestrickten VBA-Kenntnissen nicht weiter komme.
Und zwar habe ich eine Tabelle in denen immer Daten eingefügt werden.
Diese hat 36 Zeilen. Es sollen die Daten aus den Spalten 2, 12 und 13, sowie Werte aus dem Tabellenblatt "Daten" aus der 2. Spalte eingelesen werden.
Folgender Lösungsansatz:
Code:

For L = 1 To 36
N(L, 1) = Cells(L, 2, ).Value
N(L, 2) = Worksheets("Daten").Cells(L, 2).Value
N(L, 3) = Cells(L, 12).Value
N(L, 4) = Cells(L, 13).Value
Next L 
Die N(L, 3) und N(L, 4) sollen nun in ein anderes Tabellenblatt einsortiert werden.
N(L, 1) entspricht dabei der Spaltennamen
N(L. 2) entspricht dabei den Zeilennamen
N(L, 4) soll immer rechts neben N(L, 3) eingetragen werden.
Mit Google habe ich mir dann diese "Fast-Lösung" gebastelt, bei der ich aber den Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler bekomme.
Dim N(36, 4)
Public Sub Daten()
For L = 1 To 36
N(L, 1) = Cells(L, 2).Value
N(L, 2) = Worksheets("Daten").Cells(L, 2).Value
N(L, 3) = Cells(L, 12).Value
N(L, 4) = Cells(L, 13).Value
Dim c As Range
With Worksheets("Zykluszeiten").Range("a3:a500")
Set c = .Find(N(L, 2), LookIn:=xlValues)
If Not c Is Nothing Then
e = c.Row
End If
End With
Dim d As Range
With Worksheets("Zykluszeiten").Range("c1:BU1")
Set d = .Find(N(L, 1), LookIn:=xlValues)
If Not d Is Nothing Then
f = d.Column
End If
End With
Worksheets("Zykluszeiten").Cells(e, f).Formula = N(L, 3)
Worksheets("Zykluszeiten").Cells(e, f + 1).Formula = N(L, 4)
Next L
End Sub

Ich hoffe es findet sich ein Begabter, der mir hilft.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Musterdatei bitte!
02.07.2013 08:32:55
Klaus
Hi Dennis,
ich mag jetzt keine Datei nachbauen, dann stimmt der Aufbau eh nicht überein. Lad mal bitte hoch was du hast, idealerweise mit einer händisch reingeschriebenenen Musterlösung.
Grüße,
Klaus M.vdT.

AW: Werte aus Tabelle in andere Tabelle eintragen
02.07.2013 08:56:56
Klaus
Hi,
bleib doch bitte in der Antwortstruktur, dass macht es einfacher dem Thread zu folgen.
Hier ist dein Fehler:
          Set c = .Find(What:=N(L, 2), LookIn:=xlValues)
If Not c Is Nothing Then
e = c.Row
End If
End With

c IST nothing, darum wird e nicht gesetzt. Weiter unten kommt dann der Fehler in
Worksheets("Zykluszeiten").Cells(e, f).Formula = N(L, 3)
da e nicht gesetzt ist e = nix = 0, es wird Zelle C0 angesprochen. Und die gibt es nicht!
Debug: Ich kann nur vermuten: wenn N(L,2) oder N(L,1) nicht gefunden wurden, dann soll NICHTS eingetragen werden? Das ginge zB so:
Dim N(36, 4)
Public Sub Daten()
Dim bGefunden
bGefunden = True
For L = 1 To 36
N(L, 1) = Cells(L, 2).Value
N(L, 2) = Worksheets("Daten").Cells(L, 2).Value
N(L, 3) = Cells(L, 12).Value
N(L, 4) = Cells(L, 13).Value
Next L
For L = 1 To 36
Dim c As Range
With Worksheets("Zykluszeiten").Range("A3:A500")
Set c = .Find(What:=N(L, 2), LookIn:=xlValues)
If Not c Is Nothing Then
e = c.Row
Else
bGefunden = False
End If
End With
Dim d As Range
With Worksheets("Zykluszeiten").Range("C1:BU1")
Set d = .Find(What:=N(L, 1), LookIn:=xlValues)
If Not d Is Nothing Then
f = d.Column
Else
bGefunden = False
End If
End With
If bGefunden Then
Worksheets("Zykluszeiten").Cells(e, f).Formula = N(L, 3)
Worksheets("Zykluszeiten").Cells(e, f + 1).Formula = N(L, 4)
End If
Next L
End Sub
Ein gutgemeinter Rat: verwende Option Explicit, und sprechendere Variablenbezeichnungen.
Grüße,
Klaus M.vdT.

Anzeige
AW: Werte aus Tabelle in andere Tabelle eintragen
02.07.2013 09:17:52
Dennis
Sorry, ich komme noch nicht so ganz mit der Forumstruktur hier klar. :)
Es heißt doch, If NOT c ist Nothing.
Also soll, wenn N(L,1) zb. gefunden wurde die Zeile ausgegeben werden, da ja nicht nichts drin steht.
Obwohl... also falls nichts gefunden wurde gibt es dann diese Fehlerrückkopplung? Leuchtet mir gerade ein.
Im Grunde sollen ja bloß die Zykluszeiten von den Artikeln den entsprechenden Maschinen zugeordnet werden.
Vielleicht ist meine Lösung dafür nicht geeignet und es gibt eine andere oder bessere?
Im Test des Makros wurde nichts übertragen. Kann das damit zusammenhängen, dass das Makro vom Tabellenblatt "Daten" nicht die Zellwerte sondern die Formeln einliest?
Danke schonmal für die Hilfe. :)

Anzeige
AW: Werte aus Tabelle in andere Tabelle eintragen
02.07.2013 10:37:12
Dennis
Vielen Dank, ich habs hinbekommen. Ich musste
bGefunden = True noch in die Schleife nehmen.

Danke für die Rückmeldung! mit Text.
02.07.2013 10:39:58
Klaus
Hi Dennis,
Ich musste bGefunden = True noch in die Schleife nehmen
ja, jetzt wo du es sagst! Sonst bleibt es ja nach dem ersten Wert für immer und ewig auf false .. blöder Fehler von mir, sorry. Gratulation zum Fix!
Grüße,
Klaus M.vdT.

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige