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

Daten übertragen

Daten übertragen
07.07.2008 09:43:00
Dieter
Guten Morgen liebes Excel Forum,
Ich knobele jetzt schon seit ein paar Tagen an folgendem Problem:
ich habe ein Rechnungsformular (Tabellenname Rechnung) erstellt und möchte nach Eingabe aller relevanten Daten, diese dann in die Tabelle „RG_Buch“ übertragen.( per Makro )
Mein Formular ist folgendermaßen aufgebaut:
A12:A15 Lieferanschrift
B23 Rg-Nr., D23 Kd.-Nr., G23 Datum
In Zeile 30 stehen dann Überschriften
B30 Artikelnr., C30 Produkt, F30 Menge, G30 Einzelpreis, H30 Netto, I30 Mwst., J30 Brutto
Ab Zeile B31 bis J44 (D u. E sind Leerspalten, wurden mit C zusammengeführt, für Produktbeschreibung) können dann Einträge vorgenommen werden, oder werden automatisch gefüllt (Formeln)
In H46, I46, J46 werden Zwischensummen gebildet und J49 sowie J50 werden eventuelle
Nebenkosten eingetragen.
Die Endsumme steht dann in J53.
Mein Wunsch wäre, bis auf die Anschrift, alle Daten auszulesen und in die Tabelle Rg_Buch zu schreiben.
Vielleicht ist es auch möglich, nachdem die Daten übertragen wurden, die Einträge in B31:B44, F31:F44, J49 und J50 zu löschen, um dann wieder mit einem „BLANCO“ Formular weitere Rechnungen zu erfassen.
Wäre sehr dankbar, wenn mir jemand bei der Lösung behilflich sein könnte.
Besten Dank schon mal im Voraus und beste Grüße
Dieter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten übertragen
07.07.2008 10:19:00
fcs
Hallo Dieter,
im Prinzip kannst du es ähnlich machen, wie in meinem Vorschlag zu dem Problem in diesem Beitrag.
Auch hier gibt es einzelne Zellinhalte und Listen die aus einem Einageblatt in eine Zieltabelle übertragen werden sollen.
https://www.herber.de/forum/messages/991249.html
Die Tabellennamen, Zelladressen etc. muss du natürlich entsprechend anpassen.
Der einfacheren Syntax wegen bei der Verarbeitung von Listen unter VBA werden hier fast alle Zelladressen mit Cells(Zeile, Spalte) und nicht mit Range angesprochen.
Das Löschen der Einträge nach dem Übertragen der Werte geht dann mit folgender Anweisung:
wksEingabe.Range("B31:B44).ClearContents
Gruß
Franz

Anzeige
AW: Daten übertragen
07.07.2008 15:04:00
Dieter
Hallo Franz,
vielen Dank für Deine Antwort.
Muß leider gestehen, dass ich den Code für meine Zwecke nicht anpassen kann. (Unwissendheit)
Habe einmal im Archiv gestöbert und einen Code gefunden, der meinen eher geringen VBA Kenntnissen
zusagt.
Dieser sieht wie folgt aus:

Sub EingabeDaten_nach_Rg_Buch()
Dim wksRechnung As Worksheet, wksRg_Buch As Worksheet, lngZeile As Long
Set wksRechnung = ActiveWorkbook.Sheets("Rechnung")
Set wksRg_Buch = ActiveWorkbook.Sheets("Rg_Buch")
lngZeile = wksRg_Buch.Cells(wksRg_Buch.Rows.Count, 1).End(xlUp).Row + 1
' Daten übertragen
wksRg_Buch.Cells(lngZeile, 1).Value = wksRechnung.Range("B23").Value 'Rechnunsnummer
wksRg_Buch.Cells(lngZeile, 2).Value = wksRechnung.Range("D23").Value 'Kundennummer
wksRg_Buch.Cells(lngZeile, 3).Value = wksRechnung.Range("G23").Value 'datum
wksRg_Buch.Cells(lngZeile, 4).Value = wksRechnung.Range("B31").Value 'Artikelnummer
wksRg_Buch.Cells(lngZeile, 5).Value = wksRechnung.Range("C31").Value 'Produkt
wksRg_Buch.Cells(lngZeile, 6).Value = wksRechnung.Range("F31").Value 'Stückzahl
wksRg_Buch.Cells(lngZeile, 7).Value = wksRechnung.Range("G31").Value 'Einzelpreis
wksRg_Buch.Cells(lngZeile, 8).Value = wksRechnung.Range("H31").Value 'GesamtNetto
wksRg_Buch.Cells(lngZeile, 9).Value = wksRechnung.Range("I31").Value 'Mwst
wksRg_Buch.Cells(lngZeile, 10).Value = wksRechnung.Range("J31").Value 'GesamtBrutto
wksRg_Buch.Cells(lngZeile, 11).Value = wksRechnung.Range("B32").Value 'Artikelnummer
wksRg_Buch.Cells(lngZeile, 12).Value = wksRechnung.Range("C32").Value 'Produkt
wksRg_Buch.Cells(lngZeile, 13).Value = wksRechnung.Range("F32").Value 'Stückzahl
wksRg_Buch.Cells(lngZeile, 14).Value = wksRechnung.Range("G32").Value 'Einzelpreis
wksRg_Buch.Cells(lngZeile, 15).Value = wksRechnung.Range("H32").Value 'GesamtNetto
wksRg_Buch.Cells(lngZeile, 16).Value = wksRechnung.Range("I32").Value 'Mwst
wksRg_Buch.Cells(lngZeile, 17).Value = wksRechnung.Range("J32").Value 'GesamtBrutto
weiter bis B44:J44
'Datei speichern
ActiveWorkbook.Save
'einige Eingabefelder leeren für nächste Eingabe
wksRechnung.Range("D23").ClearContents 'Kundennummer
wksRechnung.Range("B31").ClearContents 'Artikelnr.
wksRechnung.Range("F31").ClearContents 'Stückzahl
wksRechnung.Range("J49").ClearContents 'Versandgebühren
wksRechnung.Range("J50").ClearContents 'Versangkosten
wksRechnung.Range("J51").ClearContents 'Sendungsdaten
MsgBox "Daten wurden übertragen."
End Sub


Nun habe ich noch ein kleines Problem.
Die zweite Zeile wird leider an die 1. eingelesende Zeile angehängt. Diese sollte aber darunter
fortgechrieben werden.
Könnt Ihr mir eventuell einen Tip geben, wie ich dieses Problem lösen kann?
Danke
Dieter

Anzeige
AW: Daten übertragen
08.07.2008 10:43:29
fcs
Hallo Dieter,
hier ein Vorschlag, der die Zeilen 31 bis 44 im Rechnungsblatt in einer Schleife abarbeitet.
zusätzlich wird geprüft ob eine Artikelnummer eingetragen ist.
Gruß
Franz

Sub EingabeDaten_nach_Rg_Buch()
Dim wksRechnung As Worksheet, wksRg_Buch As Worksheet, lngZeile As Long
Dim varRechnungsNr, varKundenNr, datDatum As Date
Dim lngZeileRng As Long
Set wksRechnung = ActiveWorkbook.Sheets("Rechnung")
Set wksRg_Buch = ActiveWorkbook.Sheets("Rg_Buch")
'Letzte Zeile im Rechnungslog
lngZeile = wksRg_Buch.Cells(wksRg_Buch.Rows.Count, 1).End(xlUp).Row
' Daten übertragen
varRechnungsNr = wksRechnung.Range("B23").Value 'Rechnunsnummer
varKundenNr = wksRechnung.Range("D23").Value 'Kundennummer
varDatum = wksRechnung.Range("G23").Value 'datum
With wksRechnung
For lngZeileRng = 31 To 44 'Zeilen im Blatt Rechnung
'prüfen ob Artikelnummer in Zeile vorhanden
If .Cells(lngZeileRng, 2).Value  "" Then 'Artikelnummer
lngZeile = lngZeile + 1 'Nächste Zeile im Blatt RgBuch
wksRg_Buch.Cells(lngZeile, 1).Value = varRechnungsNr 'Rechnunsnummer
wksRg_Buch.Cells(lngZeile, 2).Value = varKundenNr 'Kundennummer
wksRg_Buch.Cells(lngZeile, 3).Value = varDatum 'datum
wksRg_Buch.Cells(lngZeile, 4).Value = .Cells(lngZeileRng, 2).Value 'Artikelnummer
wksRg_Buch.Cells(lngZeile, 5).Value = .Cells(lngZeileRng, 3).Value 'Produkt
wksRg_Buch.Cells(lngZeile, 6).Value = .Cells(lngZeileRng, 6).Value 'Stückzahl
wksRg_Buch.Cells(lngZeile, 7).Value = .Cells(lngZeileRng, 7).Value 'Einzelpreis
wksRg_Buch.Cells(lngZeile, 8).Value = .Cells(lngZeileRng, 8).Value 'GesamtNetto
wksRg_Buch.Cells(lngZeile, 9).Value = .Cells(lngZeileRng, 9).Value 'Mwst
wksRg_Buch.Cells(lngZeile, 10).Value = .Cells(lngZeileRng, 10).Value 'GesamtBrutto
End If
Next
If .Range("J49").Value  0 Then 'Versandgebühren
lngZeile = lngZeile + 1
wksRg_Buch.Cells(lngZeile, 1).Value = varRechnungsNr 'Rechnunsnummer
wksRg_Buch.Cells(lngZeile, 2).Value = varKundenNr 'Kundennummer
wksRg_Buch.Cells(lngZeile, 3).Value = varDatum 'datum
wksRg_Buch.Cells(lngZeile, 11).Value = .Range("J49").Value 'Versandgebühren
End If
If .Range("J50").Value  0 Then 'Versandkosten
lngZeile = lngZeile + 1
wksRg_Buch.Cells(lngZeile, 1).Value = varRechnungsNr 'Rechnunsnummer
wksRg_Buch.Cells(lngZeile, 2).Value = varKundenNr 'Kundennummer
wksRg_Buch.Cells(lngZeile, 3).Value = varDatum 'datum
wksRg_Buch.Cells(lngZeile, 12).Value = .Range("J50").Value 'Versandkosten
End If
If .Range("J51").Value  "" Then 'Sendungsdaten
lngZeile = lngZeile + 1
wksRg_Buch.Cells(lngZeile, 1).Value = varRechnungsNr 'Rechnunsnummer
wksRg_Buch.Cells(lngZeile, 2).Value = varKundenNr 'Kundennummer
wksRg_Buch.Cells(lngZeile, 3).Value = varDatum 'datum
wksRg_Buch.Cells(lngZeile, 13).Value = .Range("J50").Value 'Sendungsdaten
End If
End With
'Datei speichern
ActiveWorkbook.Save
'einige Eingabefelder leeren für nächste Eingabe
wksRechnung.Range("D23").ClearContents 'Kundennummer
wksRechnung.Range("B31:B44").ClearContents 'Artikelnr.  '### prüfen, ob so OK
wksRechnung.Range("F31:F44").ClearContents 'Stückzahl  '### prüfen, ob so OK
wksRechnung.Range("J49").ClearContents 'Versandgebühren
wksRechnung.Range("J50").ClearContents 'Versandkosten
wksRechnung.Range("J51").ClearContents 'Sendungsdaten
MsgBox "Daten wurden übertragen."
End Sub


Anzeige
AW: Daten übertragen
08.07.2008 11:18:34
Dieter
Guten Tag Franz,
ich bin einfach sprachlos.
Ich möchte mich recht herzlich für Deine Mühe bedanken, es ist genial was Du mir zur Verfügung
gestellt hast. Der Code ist perfekt, S U P E R.
Nochmals " vielen Dank "
Viele Grüsse
Dieter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige