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

VBA-Problem, Werte aus Spalte kopieren

VBA-Problem, Werte aus Spalte kopieren
30.01.2007 19:54:48
Peter
Hallo alle zusammen,
folgendes Problem:
Wenn ich im Drop Down Feld "Drop Down 76" einen bestimmten Namen auswähle, möchte ich, daß aus dem Tabellenblatt mit dem selben Namen aus bestimmten Spalten die Werte in bestimmte Spalten eines anderen Tabellenblatts kopiert werden. Vorher sollten allerdings alle Werte aus den Ziel-Spalten gelöscht werden.
Jetzt näheres zu den Spalten, den Zellverknüpfungen und dem Eingabebereich:
"Drop Down 76" hat die Zellverknüpfung im Blatt "Hilfe" Zelle "BG3".
"Drop Down 76" hat Eingabebereich im Blatt "Formatierung" Zellen "E2 bis E23".
Wenn ich nun einen Name aus dem Drop down Feld ausgewählt habe stimmt dieser mit einem der Namen aus dem Zellbereich "E2 bis E23" überein und ist einem bestimmten "Case" in Zelle "BG3" zugeordnet.
Jetzt soll das Makro nach einem Tabellenblatt mit dem selben Namen suchen und dann folgendes machen:
1. Im Blatt "DatenquelleBäume" die Werte in den Spalten A, E, G, F, H, D, T, R, Q löschen.
2. Aus dem Blatt mit dem selben Namen die Werte nach "DatenquelleBäume" kopieren.
von Spalte, nach Spalte
A, A
B, E
C, G
D, F
E, H
F, D
G, T
H, R
I, Q
Je nach dem man welchen Namen im Drop Down Feld auswählt hat, werden nun die Werte aus dem Blatt mit dem selben Namen ins Blatt DatenquelleBäume kopiert.
Ich habe versucht mit Select Case etwas hinzubekommen, bin aber gescheitert
Kann mir jemand helfen?
Grüße aus Berlin

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Problem, Werte aus Spalte kopieren
31.01.2007 02:10:04
fcs
Hallo Peter,
ungetest, müsste aber eigentlich funktionieren

Sub Test()
'Spalteninhalte  A, E, G, F, H, D, T, R, Q  in DatenquelleBäume löschen
With Worksheets("DatenquelleBäume")
.Columns("A").ClearContents
.Columns("E").ClearContents
.Columns("G").ClearContents
.Columns("F").ClearContents
.Columns("H").ClearContents
.Columns("D").ClearContents
.Columns("T").ClearContents
.Columns("R").ClearContents
.Columns("Q").ClearContents
End With
'Werte aus gewählter Tabelle in DatenquelleBäume eintragen
With Worksheets(Worksheets("Hilfe").Range("BG3").Value)
Worksheets("DatenquelleBäume").Columns("A").Value = .Columns("A").Value
Worksheets("DatenquelleBäume").Columns("E").Value = .Columns("B").Value
Worksheets("DatenquelleBäume").Columns("G").Value = .Columns("C").Value
Worksheets("DatenquelleBäume").Columns("F").Value = .Columns("D").Value
Worksheets("DatenquelleBäume").Columns("H").Value = .Columns("E").Value
Worksheets("DatenquelleBäume").Columns("D").Value = .Columns("F").Value
Worksheets("DatenquelleBäume").Columns("T").Value = .Columns("G").Value
Worksheets("DatenquelleBäume").Columns("R").Value = .Columns("H").Value
Worksheets("DatenquelleBäume").Columns("Q").Value = .Columns("I").Value
End With
End Sub

Gruss
Franz
Anzeige
funktioniert nicht
31.01.2007 17:02:27
Peter
Hallo Franz,
der Code funktioniert bei mir nicht.
Es kommt die Fehlermeldung "Laufzeitfehler 13" und "Tyen unverträglich".
Im VBA ist dann die erste Zeile in der die Methode Columns steht gelb markiert.
Keine Ahnung?
Außerdem glaube ich nicht das die Zeile: With Worksheets(Worksheets("Hilfe").Range("BG3").Value) funktioniert, da hier ja nur eine Zahl ausgegeben wird.
Ich brauche aber den Vergleich des ausgewahlten Namen im Drop Down und der Namen der Tabellenblätter. Mein VBA ist allerdings so schlecht, daß es sein kann, daß ich den Code einfach nicht richtig lesen kann.
Kannst du mir noch weiter helfen?
Grüße aus Berlin
Anzeige
.Columns verlangt eigentl numer. Argument - orT
31.01.2007 17:57:47
Luc:-?
Gruß Luc :-?
was heißt das?
31.01.2007 18:02:30
Peter
Hallo,
was heißt: .Columns verlangt eigentl numer. Argument - orT
Kannst du das in mein Beispiel einbauen?
Gruß
Peter
AW: .Ein gutes Excel ist zwei-sprachig :-)
31.01.2007 18:30:44
fcs
Hallo Luc,
bei mir funktionieren beide Schreibweisen.
.Columns("A")
.Columms(1)
übrigens auch mit Cells kann ich die Spalte wahlweise angeben Cells(4,3) oder Cells(4,"C")
Gruß
Franz
Dann lies mal in der Hilfe nach!
01.02.2007 02:37:30
Luc:-?
So muss es unnötigerweise erst konvertiert wdn, Franz.
Also etliche überflüssige Befehle mehr, die der Interpreter braucht. Frage mich, wer hier zuerst auf diese "geniale" Idee gekommen ist. Greift seitdem genauso inflationär um sich wie auch so manches andere Kennzeichen schlechten Programmierstils. Vor ca Mitte 2006 ist mir sowas nie aufgefallen. Nur Range verlangt entweder ein String-Argument oder die Bereichsangabe mit 2x Cells. Empfohlen wird von MS ohnehin die Cells-Variante. Alles andere ist "suboptimal", weil es zusätzliche Rechenzeit kostet. So zu arbeiten ist also mitnichten schlau oder besonders pfiffig, sondern eher laienhaft. Auch so manche andere nicht typgerechte Angabe wird vom VBA-Interpreter konvertiert. Hier gilt das Gleiche (nur bei Compilation mag's egal sein). Auffällig wird sowas allerdings meist erst bei großem Datenumfang.
Luc :-?
Anzeige
AW: Dann lies mal in der Hilfe nach!
01.02.2007 16:49:50
fcs
Hallo Luc,
für mich ist das weder als pfiffig oder schlau angedacht, die Spalte nicht nummerisch anzugeben, sondern als bequem oder faul. Denn für mich ist es halt manchmal lästig bei einer einzelnen Spalte auszurechnen der wievielte Buchstabe im Alphabet ist den nun das "K".
Und wenn MS meint diese Bequemlichkeit in seinem Editor anbieten zu müssen, dann darf man sich auch nicht wundern, wenn diese Möglichkeit wahrgenommen wird - effizienter Code hin oder her.
Gruß
Franz
Des Menschen Wille ist sein Himmelreich! ;-) owT
01.02.2007 17:22:19
Luc:-?
:-?
AW: funktioniert nicht
31.01.2007 18:25:33
fcs
Hallo peter,
ich hatte leider nicht erkannt, dass du die DropDown-Liste aus der Symbolleiste "Formular" verwendest, die "nur" die Nummer des ausgewählten Elements in die verknüpfte Zelle zurückgibt.
Wenn alle angegebenen Tabellen in der gleichen Excel-Arbeitsmappe sind, dann sollte es jetzt eigentlich funktionieren. Ich habs jetzt auch getestet.
Das Makro startest du nach dem Ändern der Tabelle in der Auswahlbox manuell oder du weist der Drop-Drown-Auswahlbox das Makro zu, so dass es nach Änderung der Auswahl automatisch ausgeführt wird.
Ich hab das Makro unter WindowsXP, Excel 2003, deutsch erstellt. In der Tabelle werden Zellen in der A1-Schreibweise addressiert. Warum die Eigenschaft "Columns" mit Typfehler reagiert weiss ich nicht. Evtl. Ist das irgendeine Einstellungssache. Ersetze ggf. die Buchstaben durch entsprechende Ziffern: Columns("A") wird zu Columns(1), "B" zu 2 und so weiter.
Gruß
Franz

Sub Test()
'Spalteninhalte  A, E, G, F, H, D, T, R, Q  in DatenquelleBäume löschen
Worksheets("DatenquelleBäume").Activate
With Worksheets("DatenquelleBäume")
.Columns("A").ClearContents
.Columns("E").ClearContents
.Columns("G").ClearContents
.Columns("F").ClearContents
.Columns("H").ClearContents
.Columns("D").ClearContents
.Columns("T").ClearContents
.Columns("R").ClearContents
.Columns("Q").ClearContents
End With
'Werte aus gewählter Tabelle in DatenquelleBäume eintragen
'Application.ScreenUpdating = False
With Worksheets(Worksheets("Formatierung").Range("E2:E23").Cells(Worksheets("Hilfe").Range("BG3").Value, 1).Value)
Worksheets("DatenquelleBäume").Columns("A").Value = .Columns("A").Value
Worksheets("DatenquelleBäume").Columns("E").Value = .Columns("B").Value
Worksheets("DatenquelleBäume").Columns("G").Value = .Columns("C").Value
Worksheets("DatenquelleBäume").Columns("F").Value = .Columns("D").Value
Worksheets("DatenquelleBäume").Columns("H").Value = .Columns("E").Value
Worksheets("DatenquelleBäume").Columns("D").Value = .Columns("F").Value
Worksheets("DatenquelleBäume").Columns("T").Value = .Columns("G").Value
Worksheets("DatenquelleBäume").Columns("R").Value = .Columns("H").Value
Worksheets("DatenquelleBäume").Columns("Q").Value = .Columns("I").Value
End With
'Application.ScreenUpdating = True
End Sub

Anzeige
funktioniert immer noch nicht
31.01.2007 19:10:57
Peter
Hallo alle zusammen,
ich benutze Windows XP und Excel 2000.
Ich habe jetzt die Buchstaben durch entsprechende Zahlen ersetzt. (siehe Code)
Jetzt Erscheint die Fehlermeldung: "Laufzeitfehler 1004" und "Anwendungs- oder Objektdefinierter Fehler".
Mein Drop Down liegt auf dem Diagrammblatt: Charts("Pflanzungs-Karte")und nicht auf "Hilfe", "DatenquelleBäume" oder einem anderem Tabellenblatt.
Kann es daran liegen?

Sub Pflanzungsdaten()
'Spalteninhalte  A, E, G, F, H, D, T, R, Q  in DatenquelleBäume löschen
Worksheets("DatenquelleBäume").Activate
With Worksheets("DatenquelleBäume")
.Columns("1").ClearContents
.Columns("5").ClearContents
.Columns("7").ClearContents
.Columns("6").ClearContents
.Columns("8").ClearContents
.Columns("4").ClearContents
.Columns("20").ClearContents
.Columns("18").ClearContents
.Columns("17").ClearContents
End With
'Werte aus gewählter Tabelle in DatenquelleBäume eintragen
'Application.ScreenUpdating = False
With Worksheets(Worksheets("Formatierung").Range("E2:E23").Cells(Worksheets("Hilfe").Range("BG3").Value, 1).Value)
Worksheets("DatenquelleBäume").Columns("1").Value = .Columns("1").Value
Worksheets("DatenquelleBäume").Columns("5").Value = .Columns("2").Value
Worksheets("DatenquelleBäume").Columns("7").Value = .Columns("3").Value
Worksheets("DatenquelleBäume").Columns("6").Value = .Columns("4").Value
Worksheets("DatenquelleBäume").Columns("8").Value = .Columns("5").Value
Worksheets("DatenquelleBäume").Columns("4").Value = .Columns("6").Value
Worksheets("DatenquelleBäume").Columns("20").Value = .Columns("7").Value
Worksheets("DatenquelleBäume").Columns("18").Value = .Columns("8").Value
Worksheets("DatenquelleBäume").Columns("17").Value = .Columns("9").Value
End With
'Application.ScreenUpdating = True
End Sub

Gruß
Peter
Anzeige
AW: funktioniert immer noch nicht
31.01.2007 19:23:07
Horst

Sub Pflanzungsdaten()
'Spalteninhalte  A, E, G, F, H, D, T, R, Q  in DatenquelleBäume löschen
Worksheets("DatenquelleBäume").Activate
With Worksheets("DatenquelleBäume")
.Columns(1).ClearContents
.Columns(5).ClearContents
.Columns(7).ClearContents
.Columns(6).ClearContents
.Columns(8).ClearContents
.Columns(4).ClearContents
.Columns(20).ClearContents
.Columns(18).ClearContents
.Columns(17).ClearContents
End With
'Werte aus gewählter Tabelle in DatenquelleBäume eintragen
'Application.ScreenUpdating = False
With Worksheets(Worksheets("Formatierung").Range("E2:E23").Cells(Worksheets("Hilfe").Range("BG3").Value, 1).Value)
Worksheets(DatenquelleBäume).Columns(1).Value = .Columns(1).Value
Worksheets(DatenquelleBäume).Columns(5).Value = .Columns(2).Value
Worksheets(DatenquelleBäume).Columns(7).Value = .Columns(3).Value
Worksheets(DatenquelleBäume).Columns(6).Value = .Columns(4).Value
Worksheets(DatenquelleBäume).Columns(8).Value = .Columns(5).Value
Worksheets(DatenquelleBäume).Columns(4).Value = .Columns(6).Value
Worksheets(DatenquelleBäume).Columns(20).Value = .Columns(7).Value
Worksheets(DatenquelleBäume).Columns(18).Value = .Columns(8).Value
Worksheets(DatenquelleBäume).Columns(17).Value = .Columns(9).Value
End With
'Application.ScreenUpdating = True
End Sub

mfg Horst
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige