Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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
Inhaltsverzeichnis

Externe Daten importieren

Externe Daten importieren
06.09.2023 16:44:14
Claudia
Hallo Leute, stehe schon wieder auf dem Schauch :-(,
Da merkt man, doch wirklich, das ich ein absoluter Laie bin :-(


Durch vorherige Funktionen mittels Userform1 und Commandbutton1 habe ich eine neue Arbeitsmappe mit 3 Tabellenblätter erzeugt. (Materialliste Nr.1, Materialliste Nr.2, Datenvergleich), die Arbeitsmappe ist noch geöffnet.

Nun möchte ich mittels Commandbutton7 in Userform1 folgendes auslösen:

1. aktiviere das Tabellenblatt "Materialliste Nr.2"
2. Schreibschutz Tabellenblatt "Materialliste Nr.2"deaktivieren
3. Datenpfad auswählen (Dialogfeld anzeigen)
4. Textdatei über externe Daten mittels Textdatei im Tabellenblatt "Materialliste Nr.2" importieren
5. Schreibschutz setzen
6. Arbeitsmappe minimieren

Leider funktioniert mein Makro nicht, das Makro findet das Arbeitsblatt "Materialliste Nr.2" nicht.
Wo liegt der Fehler?


Private Sub CommandButton7_Click()

' Arbeitsblatt "Materialliste Nr.2" auswählen
ThisWorkbook.Sheets("Materialliste Nr.2").Select

' Schritt 1: Aktiviere das Tabellenblatt "Materialliste Nr.2"
' ThisWorkbook.Sheets("Materialliste Nr.2").Activate

' Schritt 2: Schreibschutz deaktivieren
ActiveSheet.Unprotect

' Schritt 3: Datenpfad auswählen (Dialogfeld anzeigen)
Dim FileToOpen As String
FileToOpen = Application.GetOpenFilename("Textdateien (*.txt), *.txt")

' Überprüfen, ob eine Datei ausgewählt wurde
If FileToOpen > "Falsch" Then
' Schritt 4: Textdatei über externe Daten im Tabellenblatt "Materialliste Nr.2" importieren
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileToOpen, Destination:=ActiveSheet.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = vbTab ' Hier können Sie das Trennzeichen ändern, wenn es ein anderes ist
.TextFileColumnDataTypes = Array(1) ' Hier kann der Datentyp geändert werden (1 = Text)
.Refresh
End With
End If

' Schritt 5: Schreibschutz setzen
ActiveSheet.Protect

' Schritt 6: Arbeitsmappe minimieren
Application.WindowState = xlMinimized
End Sub


Wer kann helfen ?

LG
Claudia

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Externe Daten importieren
06.09.2023 16:58:44
onur
"habe ich eine neue Arbeitsmappe mit 3 Tabellenblätter erzeugt" - Wo ist der Code davon? Bitte auch mal posten...
Externe Daten importieren
06.09.2023 17:07:00
Ulf


Public Sub zeigeNamen()
Dim wb As Workbook
Dim ws As Worksheet
Dim strOut As String
Set wb = ThisWorkbook
For Each ws In wb.Worksheets
strOut = strOut & ws.Name & vbCrLf
Next
strOut = strOut & "Materialliste Nr.2" & vbCrLf & "Gleich ?!"
MsgBox strOut
End Sub
Externe Daten importieren
06.09.2023 17:07:40
Dieter(Drummer)
Hallo Claudia,

wenn die s so hinter CommandButton7 auf der Userform1 hinterlegt hast, geht es bei mir ohne Probeme.
Ich nutze wohl Excel 2010.

Gruß, Dieter(DRummer)
Hier mein Code unter CommandButton7_
Private Sub CommandButton7_Click()

ThisWorkbook.Sheets("Materialliste Nr.2").Activate
End Sub
Anzeige
Externe Daten importieren
06.09.2023 17:16:56
Ulf


'wb.SaveAs savePath & "\Materialliste " & Format(Now, "yyyymmdd_hhmmss") & ".xlsx"
dim strName as string
strname=savePath & "\Materialliste " & Format(Now, "yyyymmdd_hhmmss") & ".xlsx"
wb.SaveAs strname

d.h. das aufrufende Makro ist extern
set wb =workbooks(strname)
wb.sheets( ......

Externe Daten importieren
06.09.2023 17:23:50
Claudia
Hallo Ulf,
erst einmal vielen Dank für eure bemühungen.

Bin immer noch am verzweifeln.....
Könntest du mir deine geänderte Datei in das Makro einbauen?

LG
Claudia
Externe Daten importieren
06.09.2023 19:54:38
onur
Du brauchst Hilfe und ignorierst MEINE Hilfe ????
Anzeige
Externe Daten importieren
06.09.2023 21:21:30
Claudia
Hallo Onur,

Ich habe versucht, das Makro im Alltagsstress zwischen Arbeit, Familie und Kindern irgendwie fertigzustellen.
Dabei habe ich offenbar nur auf den letzten Thread geachtet, es tut mir leid. (Bitte verzeih mir.)
Ich schätze die Unterstützung, die ich im Forum erhalte sehr, und insbesondere auch deine Hilfe.

Ganz liebe Grüße
Claudia
Externe Daten importieren
06.09.2023 21:22:52
onur
Kein Ding, aber wichtiger ist: hast du das denn getestet?
Externe Daten importieren
06.09.2023 21:33:26
Claudia
Hallo onur,

hab folgendes implementiert:
ThisWorkbook.Sheets("Materialliste Nr.2").Select

Das Makro funzt noch nicht einwandfrei.
Es funktioniert nur, wenn ich das Tabellenblatt "Materialliste Nr.2" manuell auswähle und anschließend auf Commandbutton2 klicke.

Somit habe ich folgendes Makro:

Private Sub CommandButton2_Click()

' Arbeitsblatt "Materialliste Nr.2" aktivieren
ActiveWorkbook.Sheets("Materialliste Nr.2").Select ' ###### Der Fehler liegt hier########


' Schritt 2: Schreibschutz deaktivieren
ActiveSheet.Unprotect

' Schritt 3: Datenpfad auswählen (Dialogfeld anzeigen)
Dim FileToOpen As String
FileToOpen = Application.GetOpenFilename("Textdateien (*.txt), *.txt")

' Überprüfen, ob eine Datei ausgewählt wurde
If FileToOpen > "Falsch" Then
' Schritt 4: Textdatei über externe Daten im Tabellenblatt "Materialliste Nr.2" importieren
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileToOpen, Destination:=ActiveSheet.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = vbTab ' Hier können Sie das Trennzeichen ändern, wenn es ein anderes ist
.TextFileColumnDataTypes = Array(1) ' Hier kann der Datentyp geändert werden (1 = Text)
.Refresh
End With
End If

' Schritt 5: Schreibschutz setzen
ActiveSheet.Protect

' Schritt 6: Arbeitsmappe minimieren
Application.WindowState = xlMinimized

' Schritt6: Label3 und CommandButton3 sichtbar machen
Me.Label3.Visible = True
Me.CommandButton3.Visible = True

End Sub
Anzeige
Externe Daten importieren
06.09.2023 21:34:41
onur
Poste doch bitte mal die Datei (ggf anonymisiert).
Externe Daten importieren
06.09.2023 22:03:34
Claudia
Ja gerne.

Anbei die Datei: Materiallisten-Datenvergleich.xlam
Externe Daten importieren
06.09.2023 22:06:20
onur
Das klappt nur, wenn du die DATEI hochlädst UND den LINK hier postest.
Externe Daten importieren
06.09.2023 22:48:50
onur
Wieso kann ich kein einziges Blatt sehen? Versuch du mal den Link.
Externe Daten importieren
06.09.2023 17:03:25
Claudia
Hallo onur,
das vorherige Makro beinhaltet folgendes:


Private Sub CommandButton1_Click()

Static buttonClicked As Boolean ' Statische Variable, um zu überprüfen, ob der Button bereits geklickt wurde

' Überprüfen, ob der Button bereits geklickt wurde
If Not buttonClicked Then
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet
Dim savePath As String
Dim dataPath As String
Dim imgVisible As Boolean

' 1. Neue Arbeitsmappe erstellen
Set wb = Workbooks.Add
' 2. Tabellenblatt umbenennen
Set ws1 = wb.Sheets(1)
ws1.Name = "Materialliste Nr.1"
' 3. Neues Tabellenblatt hinzufügen
Set ws2 = wb.Sheets.Add(, ws1)
ws2.Name = "Materialliste Nr.2"
' 4. Neues Tabellenblatt für den Datenvergleich hinzufügen
Set ws3 = wb.Sheets.Add(, ws2)
ws3.Name = "Datenvergleich"

' 5. Pfad aus ListBox1 auswählen
savePath = "C:\Users\Claudia\speicherort"

' 6. Arbeitsmappe speichern
wb.SaveAs savePath & "\Materialliste " & Format(Now, "yyyymmdd_hhmmss") & ".xlsx"

' 7. Datenpfad auswählen (Dialogfeld anzeigen)
dataPath = Application.GetOpenFilename("Textdateien (*.txt), *.txt")

' 8. Textdatei importieren
If dataPath > "Falsch" Then
ws1.Cells.Clear ' Löschen Sie vorhandene Daten im Blatt 1
With ws1.QueryTables.Add(Connection:="TEXT;" & dataPath, Destination:=ws1.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = vbTab ' Hier können Sie das Trennzeichen ändern, wenn es ein anderes ist
.TextFileColumnDataTypes = Array(1) ' Hier kann der Datentyp geändert werden (1 = Text)
.Refresh
End With
End If

' 9. Schreibschutz setzen
ws1.Protect
ws2.Protect

' 10. Überprüfen, ob Daten in ws1 vorhanden sind
If ws1.UsedRange.Rows.Count > 1 Then
imgVisible = True
Else
imgVisible = False
End If

' 11. Bild (Image1) sichtbar/unsichtbar setzen
Me.Image1.Visible = imgVisible

' 13. Neue Arbeitsmappe minimieren
wb.Windows(1).WindowState = xlMinimized

' 14. Label1 und CommandButton2 sichtbar machen
Me.Label2.Visible = True
Me.CommandButton2.Visible = True

' Setzen Sie die Flag auf True, um zu verhindern, dass der Button erneut geklickt wird
buttonClicked = True
End If
End Sub
Anzeige
AW: Externe Daten importieren
06.09.2023 17:07:15
onur
ThisWorkbook.Sheets("Materialliste Nr.2").Select 

ThisWorkbook ist immer die Datei, die das Makro beinhaltet, das gerade läuft.
Du aber willst die NEUE Datei ansprechen.
Versuche es mit ActiveWorkbook.Sheets......

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige