Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten in geschlossene externe Tabelle VBA

Daten in geschlossene externe Tabelle VBA
andreas
Hallo zusammen,
habe bei dieser Anwendung die Möglichkeit die Daten der Userform in die Tabelle der Kundenliste
zu übertragen, funktioniert auch problemlos. Aufruf durch Button "neuer Kunde"
Muss jetzt aber das Tabellenblatt "Kundenliste" als separate Tabelle genannt "Kunden" ausführen.
Datei befindet sich in "C\..."
Das bedeutet ich muss die Tabelle unsichtbar im Hintergrund öffnen, die Daten übertragen und danach die unsichtbare Tabelle wieder schliessen.
weiss leider nicht wie das geht und bin deshalb für jede Hilfe dankbar
https://www.herber.de/bbs/user/69680.xls
Gruß Andreas
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten in geschlossene externe Tabelle VBA
22.05.2010 12:22:56
Oberschlumpf
Hi Andreas
Was genau meinst du mit "unsichtbar"?
a) Datei kann ruhig in Taskleiste sichtbar sein, aber soll in Excel nicht zu sehen sein?
b) Datei darf nirgendwo zu sehen sein, auch nicht in der Taskleiste?
Wo genau befindet sich die Datei in C:\... ? Oder bist du in der Lage, später im Code den Pfad selbst anzupassen?
Ciao
Thorsten
Anzeige
AW: Daten in geschlossene externe Tabelle VBA
25.05.2010 13:00:46
andreas
Hallo Thorsten,
ich habe bei einer anderen Anwendung einen Code bei dem das ähnlich passiert, dabei wird aber nur der Wert aus einer Zelle "B8" in die externe Tabelle geschrieben.
Private Sub CommandButton3_Click() 'Neue Kunden in externe Kundenliste übertragen
Dim lastrow As Integer
Dim ws As Worksheet
Dim exapp As New Application
If Range("b8") = ("") Then
End
End If
Set exapp = New Excel.Application       'Neue Excel Instanz eröffnen
exapp.Visible = False                   'Excel bleibt unsichtbar
exapp.Workbooks.Open "\\Hts01\1zu1_datenordner\1zu1_Allgemeines\Vorlagen – Maschinen –  _
Sonstiges\Vorlagen - Listen\Messprotokoll_Kundenliste.xls" 'Quelldatei öffnen
Set ws = exapp.Worksheets("Kundenliste")      'Quelltabelle angeben...
lastrow = ws.Cells.SpecialCells(xlCellTypeLastCell).Row
ws.Range("A" & lastrow + 1) = Range("b8").Value
ws.Range("A" & lastrow).Sort Key1:=ws.Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Set ws = Nothing
exapp.Workbooks("Messprotokoll_Kundenliste.xls").Close Savechanges:=True
exapp.Quit
End Sub
Jetzt will ich aber mehrere verschiedene Werte aus der Userform in die externe Tabelle schreiben, komme aber mit der Anpassung des Codes nicht klar.
Noch zu deiner Frage, den Pfad kann ich natürlich selbst anpassen, da ich auch noch nicht genau weiss wo die Tabelle am schluß abgelegt wird.
Gruß Andreas
Anzeige
AW: Daten in geschlossene externe Tabelle VBA
25.05.2010 15:50:33
Oberschlumpf
Hi Andreas
Interessant ist nur diese Zeile:
ws.Range("A" & lastrow + 1) = Range("b8").Value
der Rest des Codes ist ja nur zur Zugriffs-Vorbereitung auf die ext. Datei notwendig.
Da der Code mit Klick auf CommandButton3 gestartet wird, gehe ich davon aus, dass CommandButton3 zu dem Userform gehört, aus dem du weitere Daten in die ext. Datei übertragen willst.
Dann versuch es mal so:

ws.Range("A" & lastrow + 1) = Range("b8").Value 'unterhalb dieser Zeile schreibst du
ws.Range("B" & lastrow + 1) = Steuerelement.Text
ws.Range("C" & lastrow + 1) = Steuerelement.Text
ws.Range("D" & lastrow + 1) = Steuerelement.Text
'usw.

für "B", "C" und "D" musst du natürlich die Spalten angeben, die du vorgesehen hast.
Das Gleiche gilt für "Steuerelement.Text".
Ihr Fragenden erzählt sehr oft leider nur Halbwahrheiten...wo von dem UF kommen denn die Daten her?...aus ner TextBox, Combobox, oder oder oder?
Na ja, so müsst ihr euren Code nur mehr selbst anpassen, als eigtl notwendig.
Hilfts denn?
Wenn nicht, dann zeig mal ne Bsp-Datei, und erklär, was wann wie wo hin soll.
Ciao
Thorsten
Anzeige
AW: Daten in geschlossene externe Tabelle VBA
26.05.2010 11:27:04
andreas
Hallo Thorsten,
habe deine Anweisungen befolgt, klappt so wie ich es mir vorgestellt hatte.
Noch kurz zu den Fragenden.
Es stimmt schon dass die Fragen aus der sicht eines Profis sicherlich nicht immer richtig sind, aber das ist doch der Grund weshalb die Fragen zustande kommen, weil nicht alle den selben Wissensstand haben.
Ich z.B. würde mich sehr für die VBA Programmierung interessieren und probiere auch herum, aber was mir fehlt ist der richtige Anfang von ganz vorne. Ich weiss nicht was ich wo suchen muss und wie ich zu den ganzen Begriffen komme.
Vielleicht kannst du mir ja eine gute Webseite oder eine Lektüre empfehlen, bei der das brauchbar erklärt ist.
nochmals vielen Dank für deine Hilfe, versuche meine Fragen in Zukunft besser zu formulieren.
Gruß Andreas
Anzeige
AW: Daten in geschlossene externe Tabelle VBA
23.05.2010 04:41:53
fcs
Hallo Andreas,
das erfordert an verschiedenen Stellen Anpassungen.
Die Auswahlliste der Kundennamen für die Combobox2 wird beim Öffnen der Datei aus der Kundenliste mit Daten gefüllt.
Zum Speichern eines neuen Kunden wird die Datei mit der Kundenliste jeweils kurzzeitig geöffnet.
Probleme beim Speichern könnte es geben, wenn ein andere Anwender die Kundenliste geöffnet hat.
Den Dateinamen der Kundenliste muss du im Modul "DieseArbeitsmappe" anpassen.
Gruß
Franz
https://www.herber.de/bbs/user/69694.zip
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten in geschlossene externe Tabelle mit VBA schreiben


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein, um Daten in eine geschlossene Datei zu schreiben:

    Private Sub CommandButton3_Click()
       Dim lastrow As Integer
       Dim ws As Worksheet
       Dim exapp As New Application
    
       ' Prüfen, ob das Textfeld leer ist
       If Range("b8") = ("") Then
           End
       End If
    
       ' Unsichtbare Excel-Instanz erstellen
       Set exapp = New Excel.Application
       exapp.Visible = False
    
       ' Externe Datei öffnen
       exapp.Workbooks.Open "C:\Pfad\Zu\Deiner\Kundenliste.xlsx"
       Set ws = exapp.Worksheets("Kunden")
    
       ' Letzte Zeile finden und Daten übertragen
       lastrow = ws.Cells.SpecialCells(xlCellTypeLastCell).Row
       ws.Range("A" & lastrow + 1) = Range("b8").Value
       ' Weitere Werte hinzufügen
       ws.Range("B" & lastrow + 1) = Steuerelement.Text ' Beispiel für zusätzliche Daten
    
       ' Datei speichern und schließen
       exapp.Workbooks("Kundenliste.xlsx").Close Savechanges:=True
       exapp.Quit
    End Sub
  4. Anpassungen vornehmen: Ersetze Steuerelement.Text mit dem Namen des Steuerelements, aus dem du die Daten übertragen möchtest.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Überprüfe den angegebenen Pfad zur Datei. Achte darauf, dass die Datei existiert und der Pfad korrekt ist.

  • Fehler: "Excel-Anwendung kann nicht gestartet werden"
    Stelle sicher, dass Excel auf deinem Computer installiert ist. Überprüfe die Berechtigungen, um Excel über VBA zu starten.

  • Datenübertragung funktioniert nicht
    Stelle sicher, dass die Namen der Steuerelemente im Code korrekt sind und dass du die richtigen Zellreferenzen verwendest.


Alternative Methoden

  • Verwenden von Power Query: Wenn du keine VBA-Kenntnisse hast, kannst du Power Query nutzen, um Daten aus einer externen Excel-Datei zu importieren. Dies funktioniert jedoch nur, wenn die Datei geöffnet ist.

  • Excel-Add-Ins: Es gibt verschiedene Add-Ins, die dir helfen können, Daten in geschlossene Dateien zu schreiben, ohne dafür Programmierkenntnisse zu benötigen.


Praktische Beispiele

  1. Kundenliste aktualisieren: Verwende den obigen Code, um eine Kundenliste zu aktualisieren, indem du neue Kundeninformationen aus einer Userform überträgst.

  2. Berichtswesen automatisieren: Erstelle ein VBA-Skript, das automatisch wöchentliche Verkaufsberichte in eine geschlossene Datei schreibt.


Tipps für Profis

  • Fehlerbehandlung einbauen: Füge Fehlerbehandlungsroutinen zu deinem Code hinzu, um unerwartete Probleme zu identifizieren und zu lösen.

  • Variable Typen verwenden: Achte darauf, die richtigen Datentypen für Variablen zu verwenden, um die Effizienz deines Codes zu erhöhen.

  • Dokumentation: Kommentiere deinen Code ausführlich, damit du später leichter nachvollziehen kannst, was jeder Teil des Codes bewirken soll.


FAQ: Häufige Fragen

1. Wie kann ich Daten in eine geschlossene Datei schreiben?
Verwende VBA, um eine neue Excel-Anwendung zu erstellen, die Datei im Hintergrund zu öffnen und die Daten zu schreiben, bevor du die Datei schließt.

2. Gibt es eine Möglichkeit, dies ohne VBA zu tun?
Ja, du kannst Power Query oder Excel-Add-Ins verwenden, um Daten aus geschlossenen Dateien zu importieren oder zu aktualisieren, jedoch ist VBA oft flexibler.

3. Wie finde ich den Speicherort der Kundenliste?
Der Speicherort kann im Code angepasst werden. Stelle sicher, dass du den vollständigen Pfad zur Datei angibst, um Fehler zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige