Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: per Makro Daten in eine Datenbank schreiben

per Makro Daten in eine Datenbank schreiben
Heiß
Hallo
ich bin Anfänger und hätte eine Frage:
Ich habe 3 Exceldateien
A
B
C
und eine Datenbank
Wenn ich jetzt in der Datei auf Datenbank öffnen gehe, dann öffnet mir das Makro auch die enstprechende Datei. Ich kann jetzt Daten dort ergänzen/ändern. Ich kann auch die Daten speichern und zurück in die Datei A kopieren und die Datenbank schließen.
Wenn ich aber die Datie B öffne, dort auf Datenbank gehe, kann ich die Daten nicht in B zurückschreiben. kommt Debuggen, da ja im Makro der relative Pfad zu Datei A angeben ist.
Kann ein Makro den Pfad von der Datei übernehmen, damit ich nur eine Datenbank für alle 3 Dateien benötige:
Angefangen habe ich wie folgt:
Sub Makro2()
' Makro2 Makro
Workbooks("datenbank.xlsm").Save
Range("F2:DE105").Select
Selection.Copy
Windows("spielbericht_1.privat.xlsm").Activate
Sheets("Mannschaftsspieler").Select
Range("F2").Select
ActiveSheet.Paste
ActiveWindow.WindowState = xlMaximized
Windows("datenbank.xlsm").Activate
Application.CutCopyMode = False
ActiveWorkbook.Save
Workbooks("datenbank.xlsm").Close False
End Sub
Betrifft die spielbericht_1.privat.xlsm, dort gibt es noch 2 und 3.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: per Makro Daten in eine Datenbank schreiben
01.02.2011 22:29:58
Uduuh
Hallo,
teste mal
Sub Makro2()
With Workbooks("datenbank.xlsm")
.Range("F2:DE105").Copy _
ThisWorkbook.Sheets("Mannschaftsspieler").Range("F2")
.Close True
End With
Windows(ThisWorkbook.Name).WindowState = xlMaximized
End Sub

Gruß aus’m Pott
Udo

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten in eine Datenbank mit Excel schreiben


Schritt-für-Schritt-Anleitung

Um Daten aus Excel in eine Datenbank zu schreiben, kannst du ein Makro erstellen, das den aktuellen Pfad der Arbeitsmappe verwendet. Folge diesen Schritten:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Aktiviere die Entwicklertools: Gehe zu "Datei" > "Optionen" > "Menüband anpassen" und aktiviere das Kontrollkästchen "Entwicklertools".

  3. Erstelle dein Makro: Klicke auf "Entwicklertools" > "Visual Basic" oder drücke ALT + F11.

  4. Füge ein neues Modul hinzu: Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  5. Schreibe den Code: Verwende den folgenden Code, um die Daten in die Datenbank zu kopieren:

    Sub MakroDatenbank()
       Dim dbPath As String
       dbPath = ThisWorkbook.Path & "\datenbank.xlsm"
    
       With Workbooks.Open(dbPath)
           .Sheets("Datenblatt1").Range("F2:DE105").Copy _
           ThisWorkbook.Sheets("Mannschaftsspieler").Range("F2")
           .Close SaveChanges:=True
       End With
    
       Windows(ThisWorkbook.Name).WindowState = xlMaximized
    End Sub
  6. Speichere das Makro und schließe den VBA-Editor.

  7. Führe das Makro aus: Gehe zu "Entwicklertools" > "Makros", wähle dein Makro aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  1. Debuggen beim Öffnen der Datenbank:

    • Problem: Wenn das Makro die Datenbank nicht finden kann, überprüfe den Pfad.
    • Lösung: Stelle sicher, dass die Datenbank im gleichen Verzeichnis wie deine Excel-Datei gespeichert ist.
  2. Daten werden nicht gespeichert:

    • Problem: Wenn die Daten nicht in die Datenbank geschrieben werden.
    • Lösung: Achte darauf, dass du die richtigen Zellen im Code angegeben hast und dass das Arbeitsblatt existiert.

Alternative Methoden

Wenn du eine Datenbank mit Excel erstellen möchtest, gibt es verschiedene Ansätze. Eine Möglichkeit ist die Verwendung von Microsoft Access, um eine SQL-Datenbank zu erstellen und Excel als Frontend zu verwenden. Du kannst auch Power Query nutzen, um Daten zu importieren und zu transformieren, bevor du sie in die Datenbank schreibst.


Praktische Beispiele

Hier sind einige Beispiele, wie du mit Makros Daten in eine SQL-Datenbank schreiben kannst:

  1. Verbindung zu SQL Server:

    Sub DatenInSQL()
       Dim conn As Object
       Set conn = CreateObject("ADODB.Connection")
       conn.Open "Provider=SQLOLEDB;Data Source=dein_server;Initial Catalog=deine_datenbank;User ID=dein_benutzer;Password=dein_passwort;"
    
       Dim sql As String
       sql = "INSERT INTO Tabelle (Spalte1, Spalte2) VALUES ('Wert1', 'Wert2')"
       conn.Execute sql
       conn.Close
    End Sub
  2. Datenübertragung zwischen Excel und Access:

    • Verwende ADO oder DAO für die Verbindung und das Schreiben von Daten.

Tipps für Profis

  • Verwende Fehlerbehandlung: Füge On Error GoTo Fehlerbehandlung in dein Makro ein, um mögliche Fehler zu erfassen.
  • Optimiere die Performance: Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms zu vermeiden, wenn das Makro läuft.
  • Dokumentiere deinen Code: Schreibe Kommentare in deinen VBA-Code, um zukünftige Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich eine Datenbank mit Excel erstellen? Du kannst eine Excel-Tabelle als Datenbank nutzen, indem du Daten in Tabellenform organisierst und die Excel-Datenbankfunktionen verwendest.

2. Kann ich Excel-Daten in eine SQL-Datenbank schreiben? Ja, du kannst VBA verwenden, um eine Verbindung zu einer SQL-Datenbank herzustellen und Excel-Daten dort zu speichern.

3. Was sind Makros in Excel? Makros sind automatisierte Aufgaben, die du in Excel erstellen kannst, um wiederkehrende Prozesse zu beschleunigen.

4. Wie kann ich Fehler beim Makroschreiben vermeiden? Testen deine Makros schrittweise und verwende die Debugging-Tools in VBA, um Fehler zu identifizieren und zu beheben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige