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

vom Dialog übertragen

vom Dialog übertragen
17.05.2004 14:27:20
walter mb
Hallo Zusammen,
habe ein VB-Maske Excel 97 erstellt.
Darin funktioniert alles prima, nun möchte ich allerdings verschiedene Daten
mit einem Button angesteuert in eine Datenbank kopieren.
Leider funktioniert nicht.Anbei mein Makro:

Sub NW_Datenbank_Adresse_speichern()
Application.ScreenUpdating = False
On Error Resume Next
Workbooks.Open Filename:="C:\1_PKW_Verkauf\1-NW-PLK-Datenbank.xls"
Windows("1-NW-PLK-Datenbank.xls").Activate
Sheets("Datenbank ").Select
Range("a2").Select
ActiveCell.FormulaR1C1 = VKNR.Text
Range("b2").Select
ActiveCell.FormulaR1C1 = Anrede.Text                     'kopiert Anrede  rein
Range("c2").Select
ActiveCell.FormulaR1C1 = KuN.Text
Range("d2").Select
ActiveCell.FormulaR1C1 = Kustr.Text                      'kopiert Strasse  rein
Range("e2").Select
ActiveCell.FormulaR1C1 = StrNr.Text                      'kopiert Haus Nr rein
Range("f2").Select
ActiveCell.FormulaR1C1 = PLZ.Text                        'kopiert PLZ     rein
Range("g2").Select
ActiveCell.FormulaR1C1 = KuOrt.Text                      'kopiert Ort     rein
Range("h2").Select
ActiveCell.FormulaR1C1 = MBVSNR.Text                     'kopiert MBVSNR rein
Application.ScreenUpdating = True
End Sub

Ich müßte allerdings beim neuen speichern die nächste Zeile anspringen
können um so dann die Daten in die Zeile 3 u.s.w. zu kopieren.
Im späteren möchte ich auf die Daten zurück greifen können, also mit Button
über eine Maske holen und dann die Daten auswählen , die ich brauche.
Ich hoffe ich habe nicht zu viel gefragt ?!
Gruß Walter

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vom Dialog übertragen, warum geht das nicht ?
17.05.2004 15:43:35
walter mb
Hallo,
jetzt probiere ich schon seit Stunden, die Exceldatei wird aufgerufen,
die Mappe "Datenbank" ebenfalls, der Courser wandert auch von Celle zu Celle
aber die Daten vom Dialogblatt werden nicht übernommen.
Kann mir den keiner nur einen Tip geben !!!
Danke im voraus
Gruß Walter
AW: vom Dialog übertragen, warum geht das nicht ?
17.05.2004 18:37:26
Andre
Hallo Walter,
ich nehme an, Du hast die Zellen in Deiner Eingabemaske VKNR, Anrede, KuN usw. genannt? Dann wird das wahrscheinlich nicht gehen, weil das Makro diese Namen in Deiner Datenbankdatei sucht und nicht findet. Du müsstest beim Übertragen der Werte einen Verweis auf Deine Quelldatei bringen.
Oder sind das wirklich Textfelder in einem Dialogfenster?
Kannst Du die Datei hochladen?
Viele Grüße
André
Anzeige
Dateien kommen... Danke
17.05.2004 20:39:08
Walter mb
Hallo Andre,
anbei die Dateien:

Die Datei https://www.herber.de/bbs/user/6463.xls wurde aus Datenschutzgründen gelöscht

Die Datei https://www.herber.de/bbs/user/6464.xls wurde aus Datenschutzgründen gelöscht

mit Esc Dialog schließen und dann mit Strg+z kannst den Schutz aufheben !
Würde mich freuen wenn was klappt !
Gruß Walter
AW: Dateien kommen... Danke
17.05.2004 22:18:02
Andre
Hallo Walter,
zumindest der Export der Daten in die andere Mappe funktioniert jetzt. Bei mehrfachen Betätigen der Taste wird auch überprüft, ob die Datei schon offen ist. Hier musst Du evtl. den Namen der Datei im Code anpassen (2x!).
Außerdem wird festgestellt, welche die nächste freie Zelle in der Datenbank Tabelle ist.
https://www.herber.de/bbs/user/6467.xls
Probier es mal aus, ich hoffe ich konnte Dir erstmal weiterhelfen.
Viele Grüße
André
Anzeige
Herzlichen Dank !!!
17.05.2004 22:42:23
Walter
Hallo Andre,
herzlichen Dank für die hervorragende Hilfe!!!
Suche allerdings meine "1-NW-PLK-Datenbank.xls" im Verzeichnis "1_PKW_Verkauf".
Bin allerdings für HEUTE geschafft !
Gruß Walter
Bin wieder fitttt...
18.05.2004 08:10:05
walter mb
Guten Morgen Andre,
nachdem ich gestern selbst Stunden probiert hatte, war ich gestern sehr
müde.
Habe die Datei getestet, ich kann nur sagen SUPER.
Habe allerdings die Datenbank nicht gefunden.
Ich hoffe ich bin nicht zu unverschämt, wenn ich frage wie kann ich die Daten
auswählen und dann ins Dialog kopieren ???
Kannst Du mir noch mal helfen ???
Gruß Walter
Anzeige
Habe geändert aber ...
18.05.2004 09:46:18
Walter
Hallo Andre,
habe in der Zwischenzeit Makro geändert. Die Daten werden aber nur übertragen, wenn
ich die 1-NW-PLK-Datenbank.xls sehe und dann mit F8 im Makroblatt Stück für Stück
laufen lasse. Wenn ich die Datei 1-NW-PLK.xls über das Dialog starte zeigt zwar an Daten übertragen aber nichts ist passiert.
Gruß Walter
AW: Habe geändert aber ...
18.05.2004 09:51:24
André Lö.
was ist, wenn Du den Dialog schließt? Dann müsstest Du die Datenbank-Datei wieder sehen. Wurde dann aber nichts reinkopiert?
AW: Bin wieder fitttt...
18.05.2004 09:47:55
André Lö.
Hallo Walter,
die Datenbank, war doch die zweite kleine Datei, die Du mit hochgeladen hatttest? Darin enthalten war nur ein Blatt mit den Zeilenüberschriften.
Du musst im Hauptprogramm, in der Sub NW_Datenbank_Adresse_speichern() hinter Fname den richtigen Pfad hinschreiben und auch in der Zeile
If wb.Name = "Datenbank.xls" Then
den Namen ändern.
Nach welchem Gesichtspunkt willst Du die Daten aus der Datenbank zurück lesen?
Viele Grüße
André
Anzeige
Lösung gefunden aber noch...
18.05.2004 09:57:35
walter mb
Hallo Andre,
habe das Makro wie folgt geändert, probiert und funktioniert !!!
Makro:
''Fname = ThisWorkbook.Path & "\" & "Datenbank.xls" 'hier steht das Datenbank-File
Fname = ThisWorkbook.Path & "C:\1_PKW_Verkauf\1-NW-PLK-Datenbank.xls"
Windows("1-NW-PLK-Datenbank.xls").Activate 'meine Änderung
bolOpen = False 'check for open Database-File
For Each wb In Application.Workbooks
''If wb.Name = "Datenbank.xls" Then
If wb.Name = "1-NW-PLK-Datenbank.xls" Then 'mein Änderung
bolOpen = True
Exit For
End If
Next
If bolOpen = False Then Workbooks.Open Filename:=Fname
Set wsDatabase = Sheets("Datenbank")
For intY = 2 To 1000 ' freie Zelle in Database-Datenblatt finden
If wsDatabase.Cells(intY, 1) = "" Then
Exit For
End If
Next
wsDatabase.Cells(intY, 1).FormulaR1C1 = VKNR.Text 'kopiert Verkäufer Nr rein
wsDatabase.Cells(intY, 2).FormulaR1C1 = Kuanr.Text 'kopiert Anrede rein
wsDatabase.Cells(intY, 3).FormulaR1C1 = KuN.Text 'kopiert Kundenname rein
wsDatabase.Cells(intY, 4).FormulaR1C1 = Kustr.Text 'kopiert Strasse rein
wsDatabase.Cells(intY, 5).FormulaR1C1 = StrNr.Text 'kopiert Haus Nr rein
wsDatabase.Cells(intY, 6).FormulaR1C1 = PLZ.Text 'kopiert PLZ rein
wsDatabase.Cells(intY, 7).FormulaR1C1 = KuOrt.Text 'kopiert Ort rein
wsDatabase.Cells(intY, 8).FormulaR1C1 = MBVSNR.Text 'kopiert MBVSNR rein
Application.ScreenUpdating = True
'Application.Visible = True
MsgBox "Die Daten wurden erfolgreich übertragen!"
'Application.Visible = False
End Sub
Jetzt möchte ich die Datenbank aufrufen und irgend eine Adresse raussuchen und mit KLICK
in den DIALOG übernehmen.
Es wäre schön wenn Du mir noch einmal "unter die Arme" greifen könntest.
Gruß
Walter
Gruß Walter
Anzeige
AW: Lösung gefunden aber noch...
18.05.2004 10:50:21
André Lö.
Hallo Walter,
das "ThisWorkbook.Path &" hinter FName kannst Du noch weglöschen, wenn Du den vollständigen Pfad Deiner Datenbank-Datei eingibst.
Ich habe noch ein bisschen das Unterprogramm für den Datenbankaufruf weitergeprogrammiert.
kopiere erstmal das rein und probier es aus. Du musst wieder die Pfade und Namen anpassen.
In das Datenbankblatt soll dann ein Button der die Daten zurück schreibt? Man könnte es auch so machen, dass der Button in Deinem Dialog ist und dieser dann den Inhalt der markierten Zeile in dem Datenbankblatt zurück holt. Ist glaube ich die bessere Variante.
Viele Grüße
André
'------------------- Datenbank holen und öffnen -----------------------------

Sub NW_Datenbank_holen()
Dim bolOpen As Boolean
Dim wb As Workbook
Dim wbDatabase As Workbook
Dim wsDatabase As Worksheet
Dim NWDlg As Object
Dim VKNR As Object
Dim VKName As Object
Dim VKSymbol As Object
Dim Kuanr As Object
Dim MBVSNR As Object
Dim KuN As Object
Dim Ansprechp As Object
Dim Kustr As Object
Dim StrNr As Object
Dim PLZ As Object
Dim KuOrt As Object
Set NWDlg = ThisWorkbook.Sheets("NWDlg")
Fname = ThisWorkbook.Path & "\" & "Datenbank.xls" 'hier steht das Datenbank-File
bolOpen = False     'check for open Database-File
For Each wb In Application.Workbooks
If wb.Name = "Datenbank.xls" Then
bolOpen = True
Exit For
End If
Next
If bolOpen = False Then Workbooks.Open Filename:=Fname
Set wbDatabase = Application.Workbooks("Datenbank.xls")
Set wsDatabase = wbDatabase.Sheets("Datenbank")
Application.Visible = True
NWDlg.Hide
wsDatabase.Activate
End Sub

Anzeige
Danke probiere aus...
18.05.2004 12:45:18
walter mb
Hallo Andre,
ich begeistert mit welchen Einsatz Du mir hilfst.
Ich würde auch den Button nehmen unterhalb des Button vom kopieren in die Datenbank.
Dieser Button sollte die Datenbank aufrufen, dann selektire ich und ein Button in
der Datenbank müßte man doch DRÜCKEN oder ?
Weil doch die Datenbank jetzt auf der Oberfläche sichtbar ist .
Gruß Walter
Wieso jetzt Fehler ?
18.05.2004 14:53:06
walter mb
Hallo Andre,
habe folgendes Makro eingesetzt:
Dim bolOpen As Boolean
Dim wb As Workbook
Dim wbDatabase As Workbook
Dim wsDatabase As Worksheet
Set NWDlg = ThisWorkbook.Sheets("NWDlg")
Fname = "C:\1_PKW_Verkauf\1-NW-PLK-Datenbank.xls" 'hier steht das Datenbank-File
bolOpen = False 'check for open Database-File
For Each wb In Application.Workbooks
If wb.Name = "Datenbank.xls" Then
bolOpen = True
Exit For
End If
Next
If bolOpen = False Then Workbooks.Open Filename:=Fname
Set wbDatabase = Application.Workbooks("1-NW-PLK-Datenbank.xls")
Set wsDatabase = wbDatabase.Sheets("Datenbank")
Application.Visible = True
NWDlg.Hide
wsDatabase.Activate
End Sub
Es wird jedeglich 4x in die Datenbank die Adresse eingesetzt ?
Bin ich den jetzt blöd?
Das andere Makro mit kopieren in die Datenbank läuft.
Bitte informiere mich, bin in der Fa. und weiß leider nicht weiter.
Vielleicht habe ich mich FALSCH ausgedrückt, ich habe Daten in der Datenbank, möchte
diese Datenbank aufrufen, kann auch eine MSGBox sein oder... um mir die gewünschte Adresse anzuklicken und dann in den Dialog zu kopieren.
Gruß Walter
Anzeige
AW: Wieso jetzt Fehler ?
18.05.2004 16:30:30
André Lö.
Hallo Walter,
hab Dich schon verstanden. Das Makro müsste eigentlich laufen.
Nur wo
If wb.Name = "Datenbank.xls" Then steht
muss noch
If wb.Name = "1-NW-PLK-Datenbank.xls" Then
hin.
Was kommt denn für ein Fehler, wenn Du den Buttton [DATEN-Bank aufrufen] klickst.
Wenn es nicht klappt, dann lade doch die Datei nochmal hoch.
Viele Grüße
André
Läuft, muß aber Button 2x aufrufen
18.05.2004 17:44:00
walter mb
Hallo Andre,
habe das Makro abgeändert und zwar so:

Sub NW_Datenbank_holen()
Dim bolOpen As Boolean
Dim wb As Workbook
Dim wbDatabase As Workbook
Dim wsDatabase As Worksheet
Set NWDlg = ThisWorkbook.Sheets("NWDlg")
Fname = "C:\1_PKW_Verkauf\1-NW-PLK-Datenbank.xls"        'hier steht das Datenbank-File
bolOpen = False                                          'check for open Database-File
For Each wb In Application.Workbooks
If wb.Name = "Datenbank.xls" Then
bolOpen = True
Exit For
End If
Next
'If bolOpen = False Then Workbooks.Open Filename:=Fname
If bolOpen = True Then Workbooks.Open Filename:=Fname                'ich geändert
Set wbDatabase = Application.Workbooks("1-NW-PLK-Datenbank.xls")
Set wsDatabase = wbDatabase.Sheets("Datenbank")
Application.Visible = True
NWDlg.Hide
wsDatabase.Activate
End Sub

Stand: Ich muß den Button 2x drücken um die Datenbank auf die Oberfläche zu erhalten.
Wenn ich allerdings vorher Daten kopiert habe, also das andere Button gedrückt
habe und drücke dann den Button für die Datenbank aufzurufen, kommt die Datenbank
sofort an die Oberfläche.
Wieso ?
Ist sicherlich irgendwie eine Kleinigkeit.
Jetzt bräuchte ich nur noch das Makro, wenn ich also eine Zeile selektiert habe, um die
Daten ins Dialog zu kopieren.
Gruß Walter
Anzeige
AW: Läuft, muß aber Button 2x aufrufen
18.05.2004 17:57:18
André Lö.
Wenn Du zweimal drücken musst, dann ist das noch nicht in Ordnung.
Kopier mal das Folgende rein:


Sub NW_Datenbank_holen()
Dim bolOpen As Boolean
Dim wb As Workbook
Dim wbDatabase As Workbook
Dim wsDatabase As Worksheet
Set NWDlg = ThisWorkbook.Sheets("NWDlg")
Fname = "C:\1_PKW_Verkauf\1-NW-PLK-Datenbank.xls"        'hier steht das Datenbank-File
bolOpen = False                                          'check for open Database-File
For Each wb In Application.Workbooks
If wb.Name = "1-NW-PLK-Datenbank.xls" Then               'geändert
bolOpen = True
Exit For
End If
Next
If bolOpen = false Then Workbooks.Open Filename:=Fname   'muss so sein
Set wbDatabase = Application.Workbooks("1-NW-PLK-Datenbank.xls")
Set wsDatabase = wbDatabase.Sheets("Datenbank")
Application.Visible = True
NWDlg.Hide
wsDatabase.Activate
End Sub

Anzeige
Läuft jetzt habe..
19.05.2004 09:13:37
walter mb
Guten Morgen Andre,
herzlichen Dank für die Info, mußte aber diese Zeile rausnehmen:
'Application.Visible = True
dann geht das bei einmal klicken.
Wie kann ich den die Daten, wenn ich auf einer Zeile z.b. a5 also
Zeile 5 stehe, diese Zeile ins Dialog kopieren ?
Ein Button in der Datenbank habe ich schon in der 1 Zeile plaziert.
Hoffentlich kann ich mit deiner Unterstützung rechnen.
Gruß Walter
Habe schon den Anfang...
19.05.2004 11:48:17
walter mb
Hallo Andre,
habe schon den Anfang mit folgenden Makro gemacht, damit makiere ich die Zeile
die ich irgendwo selektiere bzw. die aktive Zelle setze.
Funktioniert auch:

Sub N_NW_Adresse_in_Dialog_setzen()
Application.ScreenUpdating = False
z = ActiveCell().Row
ActiveSheet.Range(Cells(z, 1), Cells(z, 8)).Select
Application.ScreenUpdating = True
End Sub

Jetzt weiß ich leider nicht wie ich die Daten in mein Dialog-Maske reinkriege.
Gruß Walter
AW: Habe schon den Anfang...
19.05.2004 18:22:15
André Lö.
Hallo Walter,
lade bitte noch mal Deine jetzige Datei (nicht die Datenbank, die andere) hoch. Bin jetzt bei meinen Eltern an einem anderen Rechner.
Viele Grüße
André

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige