Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

860to864: Frage zu VBA

Frage zu VBA
03.04.2007 16:00:24
Gekko
Hallöchen,
ich bin neu hier, habe fast keine VBA-Kenntnisse und hoffe auf eine kleine Hilfe zu folgendem Problem:
Ich möchte aus einem Arbeitsblatt (Angebot) 155 verschiedene Zelleninhalte als jeweils zusammenhängenden Datensatz in einem anderem Arbeitsblatt (Datenbank) abspeichern.
Wie geht das? Wer kann helfen?
Vielen Dank schon mal im Voraus!
Gruß,
Gekko

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nachfrage
03.04.2007 16:10:00
mpb
Hallo,
wo stehen die Daten (in welchen Zellen) und in welche Zellen sollen sie kopiert werden?
Gruß
Martin
AW: Nachfrage
03.04.2007 16:36:03
Gekko
Hallo Martin,
danke für die schnelle Rückmeldung!
Es gestaltet sich wie folgt:
Die Daten stehen im Arbeitsblatt "Angebot" in den Zellen:
F9, G10, E12, A11 : A13, A15, A21 : A44, B21 : B44, D21 : D44, F21 : F44, G21 : G44, H21 : H44, F45 : F47, H48, F49, H50
In dieser Reihenfolge (wenn möglich) sollten die Daten einfach aneinandergereiht (in einer Zeile aber jeweils separaten Zellen) im Arbeitsblatt "Datenbank" erscheinen. Die Datenbank beginnt bei Zeile 5 (A5) und hier sollten dann fortlaufend, untereinander die Datensätze (aus dem "Angebot" mit Mausklick auf "Speichern"!) eintragen werden!
Ich hoffe damit ist was anzufangen!?
Gruß,
Gekko
Anzeige
AW: Nachfrage
03.04.2007 17:05:00
mpb
Hallo,
mal als Ansatz:

Sub Übertrag()
Set qws = Worksheets("Angebot")
Set zws = Worksheets("Speicher")
z = zws.Range("A65536").End(xlUp).Row
s = 1
With qws
Set ber = Application.Union(.Range("F9"), .Range("G10"), .Range("E12"), .Range("A11:A13"))
For i = 1 To ber.Areas.Count
For j = 1 To ber.Areas(i).Cells.Count
ber.Areas(i).Cells(j).Copy Destination:=zws.Cells(z + 1, s)
s = s + 1
Next j
Next i
End With
End Sub

Du musst die Zeile
Set ber = Application.Union(.Range("F9"), .Range("G10"), .Range("E12"), .Range("A11:A13"))
noch um die Zellbereiche in Deiner Aufzählung erweitern. Achtung: jeweils vor dem Range nicht den Punkt vergessen.
Die Tabellenbezeichnungen "Angebot" und "Speicher" musst Du evtl. noch anpassen. Außerdem habe ich angenommen, dass in "Speicher" in A4 etwas steht (zur Not ein Leerzeichen eintragen).
Gruß
Martin
Anzeige
AW: Frage zu VBA
03.04.2007 16:32:52
Chaos
Servus Gekko,
ist das eine zusammenhängende Tabelle oder sind das irgendwelche einzelnen, quer übers Tabellenblatt verstreute Zellen?
Gruß
Chaos
AW: Frage zu VBA
03.04.2007 16:41:27
Gekko
Hallo Chaos,
schön noch einen weiteren Interessenten meines Anliegens dabei zu haben!!! Kannst du mit den Daten was beginnen?
Gruß,
Gekko
AW: Frage zu VBA
03.04.2007 16:56:08
Chaos
Servus Gekko,
muß mir mal Gedanken dazu machen. Ist nicht gerade eine leichte Nuss. Kann ne Weile dauern, aber ich schau mal was geht.
Gruß
Chaos
AW: Frage zu VBA
03.04.2007 16:56:00
Gekko
Hallo noch mal,
auf die Gefahr hin verbale Dresche zu bekommen schiebe ich noch mal eine Frage nach:
Kann man das vielleicht auch noch vereinfachen?
Was wäre wenn die Daten schon (jeweils temporär!) in einem weiteren Arbeitsblatt ("Daten") als Datensatz (A5 :EY5) stehen und dann nur noch in die Datenbank überschrieben werden müssen?
Dieses Arbeitsblatt existiert nämlich mittlerweile schon!
Gruß vom Gekko!
Anzeige
AW: Frage zu VBA
03.04.2007 17:10:00
mpb
Hallo,
das vereinfacht die Sache:

Sub Übertrag2()
Set qws = Worksheets("Daten")
Set zws = Worksheets("Speicher")
z = zws.Range("A65536").End(xlUp).Row
qws.Range("A5:EY5").Copy Destination:=zws.Cells(z + 1, 1)
End Sub
Tabellennamen anpassen, in "Speicher" muss in Zelle A4 etwas stehen.
Bei jedem Makroaufruf wird der Inahlt aus A5:EY5 in das Blatt "Speicher" kopiert.
Gruß
Martin
AW: Frage zu VBA
03.04.2007 17:16:54
Gekko
Hallo Martin,
vielen Dank vorerst! Ich werd´s mal mit der "kurzen Variante" probieren und melde mich dann zurück!
Gruß vom Gekko
AW: Frage zu VBA
03.04.2007 17:41:00
Gekko
Hallo Martin,
Hab´ vielen Dank! Soweit funktioniert es zumindest schon mal mit dem Speichern der Daten an den richtigen Ort!!!
...allerdings klappt es nicht, wenn weitere Datensätze in die Datenbank eingeschrieben werden sollen. Es verändern sich dann die vorher eingeschriebenen und die neuen Daten, somit also auch die Standorte von Kunden- und Angebotsnummern etc., die ich später wieder genauso abrufen können muß!
Wie bekomme ich nun die neuen Datensätze exakt untereinander ohne das diese sich bei weiteren Einträgen gegenseitig stören?
Kannst du da auch noch weiterhelfen?
Gruß vom Gekko
Anzeige
AW: Frage zu VBA
03.04.2007 17:52:33
mpb
Hallo,
bei meinem Code werden die Daten bei jedem Start des Makros in die Zeile mit ersten leeren Zelle in Spalte A geschrieben. Warum das bei Dir nicht klappt, kann ich nicht beurteilen. Poste mal den von Dir verwendeten Code oder lade gleich die Datei hoch.
Gruß
Martin
AW: Frage zu VBA
03.04.2007 18:05:27
Gekko
Hallo Martin,
bevor ich mir/dir mehr Arbeit mache als nötig:
ich vermute es liegt daran, dass alle Formelinhalte (wie z.B.: ='Angebot'!G10) mit in die Datenbank hineingeschrieben werden und sich deswegen die Daten gegenseitig stören!?
Gruß vom Gekko
AW: Frage zu VBA
03.04.2007 19:38:44
Gekko
Hallöchen noch mal,
ich habe viel hin und her probiert aber komme nicht auf ´nen grünen Zweig mit dem Speichern! Immer wieder werden Daten überschrieben. Woran liegt es wohl? Ich komme da nicht weiter. Kann mir noch jemand auf die Sprünge helfen?
Hier der verwendete Code:

Sub Übertrag2()
Set qws = Worksheets("Daten")
Set zws = Worksheets("Datenbank")
z = zws.Range("A65536").End(xlUp).Row
qws.Range("A5:EY5").Copy Destination:=zws.Cells(z + 1, 1)
End Sub
Gruß vom Gekko
Anzeige
AW: Frage zu VBA
03.04.2007 17:18:25
Chaos
Ist natürlich einfacher.
Dann brauche ich mir ja keine Gedanken zu machen, auch gut.
Gruß
Chaos
AW: Frage zu VBA
03.04.2007 17:43:00
Gekko
Hallo Chaos,
danke dir trotzdem! Der gute Wille zählt ja auch!!!
Gruß vom Gekko
AW: Frage zu VBA
04.04.2007 08:21:03
Chaos
Servus Gekko,
ich misch mich nochmal ein, weil ich dein Problem mitbekommen hab. Bei mir funktioniert der Code ebenfalls, aber du sagtest, du hast Verknüpfungen in der Reihe stehen. D.h.: Excel kopiert auch die Verknüpfungen und damit fehlt der Bezug in der Datenbank bzw. es steht irgenein Wert aus der Datenbank drin. Wenn du nur Werte kopieren willst, dann probiers mit folgendem korrigierten Code:

Sub Übertrag2()
Set qws = Worksheets("Daten")
Set zws = Worksheets("Datenbank")
z = zws.Range("A65536").End(xlUp).Row
Range("A5:EY5").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A65536").End(xlUp).Offset(1, 0).Select
qws.Range("A5:EY5").Copy Destination:=zws.Cells(z + 1, 1)
End Sub

dann müsste das eigentlich funktionieren.
Gruß
Chaos
Anzeige
AW: Frage zu VBA
04.04.2007 09:40:00
Gekko
Hallo Chaos,
danke für deine Rückmeldung!
Ich habe es mit deinem Code noch einmal getestet. Leider ist das Ergebnis bei mir immer noch das gleiche: Der erste Datensatz wird nach dem Abspeichern (vom Arbeitsblatt "Daten") korrekt in die Datenbank eingeschrieben. Jeder weitere versetzt dann um eine Zelle nach links . Beim Testen ist mir aufgefallen, dass z.B. im ersten erstellten Datensatz (im Arbeitsblatt "Datenbank") der Inhalt von Zelle A5 mit der vorher darin stehenden Formel übernommen wurde (=Angebot!G10). Der zweite Datensatz mit Beginn in Zelle A6 gibt aber darin als Formel (=Angebot!G11) einen anderen Wert wieder. Dieser Wert müsste aber bei korrekter Funktion identisch mit allen in Spalte A erscheinenden Werten sein.
Zum Allgemeinen Verständnis hier noch einmal meine logische Reihenfolge/Vorstellung:
- Die Abeitsblatt "Angebot" wird als Eingabe-Formular benutzt (jeweils mit neuer Angebots-Nr.)
- Im Arbeitsblatt "Daten" erscheinen in den Zellen A5 : EY5 alle Werte aus dem Angebot (Dieses Arbeitsblatt soll später einfach nur versteckt werden)
- Im Arbeitsblatt "Angebot" habe ich einen Button angelegt (Daten in Datenbank speichern) der schlussendlich die Werte des fertig ausgefüllten Angebotes aus "Daten" übernehmen soll und diese sauber untereinander in die "Datenbank" schreiben soll.
Vielleicht ist nun noch etwas mehr Klarheit entstanden?
Gruß vom Gekko
Anzeige
Nachtrag zur Frage zu VBA
04.04.2007 09:47:00
Gekko
Hallo noch mal,
dabei geht mir gerade auf, dass das Übertragen der Formeln in die "Datenbank" ja nicht die korrekte Lösung sein kann, denn die Werte aus dem "Angebot" sind ja jeweils nur temporär genutzte Daten! Hier liegt wohl auch noch ein weiteres "Häschen im Pfeffer"! In die Datenbank sollten demzufolge KEINE Formeln übertragen werden!
Gruß vom Gekko
AW: Nachtrag zur Frage zu VBA
04.04.2007 11:32:11
mpb
Hallo,
das ganze wird leider immer verwirrender. Folgender Code kopiert aus "Daten" die Werte (nicht die Formeln) nach "Datenbank":

Sub Übertrag3()
Set qws = Worksheets("Daten")
Set zws = Worksheets("Datenbank")
z = zws.Range("A65536").End(xlUp).Row
qws.Range("A5:EY5").Copy
zws.Cells(z + 1, 1).PasteSpecial Paste:=xlPasteValues
End Sub

Wenn das nicht funktioniert, solltest Du mal die Datei hier hochladen, ansonsten bin ich mit meinem Latein am Ende.
Gruß
Martin
Anzeige
AW: Nachtrag zur Frage zu VBA
04.04.2007 11:56:22
Chaos
Hallo,
ich blicks auch nicht mehr ganz. Also der letzte Code von Martin kopiert die Daten als Werte ohne Formeln, bei meinem ändert er erst die Formeln in Werte und kopiert dann, somit ist der Code von Martin besser, wenn du die Formeln in der Quelle erhalten musst.
Aber das er bei dir die Daten in der Datenbank nicht untereinander schreibt, verstehe ich überhaupt nicht, vielleicht solltest du wirklich die Datei hochladen, damit man mal eine Vorstellung kriegt, was dein Problem ist.
Gruß
Chaos
AW: Nachtrag zur Frage zu VBA
04.04.2007 12:16:38
Chaos
Aha,
das meintest du mit Versatz (Daten!G10 zu Daten!G11). Naja, wahr ist halt nicht, was A sagt, sonedrn B versteht.
Dann viel Spass und frohe Ostern
Gruß
Chaos
Anzeige
AW: Nachtrag zur Frage zu VBA
04.04.2007 12:06:00
Gekko
Hallo Martin,
vielen Dank auch für den Hinweis mit der erneuten Anfrage (...man lernt ja dazu)!
Hey, das ist ja wie Weihnachten und Geburtstag auf einmal! Alles haut jetzt prima hin mit deinem letzten Code!!! Lieben Dank für deine Hilfe!
Danke anbei aber auch noch mal für das Engagement von "Chaos"!
Auf diesem Wege: EIN FROHES OSTERFEST für euch alle und bis zur nächsten Anfrage meinerseits!
Schönes "Ding" dieses Forum. Werde es gerne an weitere "NICHT-WISSENDE" weiterempfehlen!!!
Bis die Tage...
Gruß vom Gekko

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige