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

Ansprechen von Tabellen klappt nicht

Forumthread: Ansprechen von Tabellen klappt nicht

Ansprechen von Tabellen klappt nicht
24.06.2025 13:24:06
Sascha
Private Sub Submit_Click()

Dim wb As Workbook
Dim ws As Worksheet
Dim letzteZeile As Long
Dim i As Long
Dim ausgewaehlteCheckboxText As String

' 1. Arbeitsmappe und Arbeitsblatt definieren

Set wb = Workbooks.Open("https://rbcom.sharepoint.com/xxx") 'Pfad zur SharePoint Datei
Set ws = wb.Sheets("Test") 'Name des Arbeitsblattes

' 2. Letzte beschriebene Zeile in Spalte D finden
letzteZeile = ws.Cells(Rows.Count, "D").End(xlUp).Row

' 3. Nächste freie Zeile finden (beginnend bei Zeile 2, falls Spalte D in Zeile 1 schon Daten enthält)
If ws.Cells(letzteZeile, "D").Value > "" Then
letzteZeile = letzteZeile + 1
End If

' 4. Daten aus UserForm in die Tabelle schreiben
With ws
.Cells(letzteZeile, "D").Value = UserForm1.Project.Text
.Cells(letzteZeile, "E").Value = UserForm1.von.Text
.Cells(letzteZeile, "F").Value = UserForm1.Ende.Value
.Cells(letzteZeile, "G").Value = UserForm1.Requested.Text
' ... weitere TextBoxen oder Controls entsprechend anpassen
End With

' 5. Aktiven Checkbox-Text finden und in die Tabelle schreiben
For i = 1 To 10 'Anzahl der Checkboxen anpassen
If UserForm1.Controls("CheckBox" & i).Value = True Then
ausgewaehlteCheckboxText = UserForm1.Controls("CheckBox" & i).Caption 'oder .Text, falls der Text in der Caption steht
ws.Cells(letzteZeile, "I").Value = ausgewaehlteCheckboxText
Exit For
End If
Next i

' 6. Arbeitsmappe speichern und schließen
wb.Save
wb.Close

' 7. Erfolgsmeldung
MsgBox "Daten erfolgreich in " & strZielTabelle & " eingetragen."


Ich hoffe ihr könnt mir helfen. Danke
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ansprechen von Tabellen klappt nicht
24.06.2025 14:03:22
MCO
Moin!

Ich fürchte, mit dateien aus dem Sharepoint klappt das nicht.

Gruß, MCO
AW: Ansprechen von Tabellen klappt nicht
24.06.2025 15:59:42
Sascha
Es hatte ja schonmal funktioniert, allerdings hatte ich da nicht das Auslesen von Spalte D drin. Da ich aber in der Tabelle Formeln hinterlegt habe, sind Spalte A-C schon beschrieben in Zeile 1 und VBA hat dann Automatisch in Zeile 2 geschrieben.

Dummerweise habe ich mir dann einen neuen Code "geklaut" aber der führt zu ganz andern Problemen wie man sieht .....

Hätte ich mir mal lieber eine Kopie gemacht bevor ich es Überschrieben habe...
Anzeige
AW: Ansprechen von Tabellen klappt nicht
25.06.2025 09:33:22
MCO
Hey,
hier mal ein paar Dinge die du ändern solltest, bitte erst vollständig lesen.

Ermittlung der letzten Zeile
Unter
    ' 2. Letzte beschriebene Zeile in Spalte D finden

letzteZeile = ws.Cells(Rows.Count, "D").End(xlUp).Row

wird von unten die letzte beschriebene Zeile in "D" ermittelt, dann in
 ' 3. Nächste freie Zeile finden (beginnend bei Zeile 2, falls Spalte D in Zeile 1 schon Daten enthält)

If ws.Cells(letzteZeile, "D").Value > "" Then
letzteZeile = letzteZeile + 1
End If

aber immer keine Zeile zugefügt, denn mit 2. ist man schon in der letzten beschrieben Zeile der Spalte.

3. kann somit komplett entfallen, aber bei 2. muss stehen:
letzteZeile = ws.Cells(Rows.Count, "D").End(xlUp).Row + 1


Außerdem kannst du das hier
    ' 6. Arbeitsmappe speichern und schließen

wb.Save
wb.Close

zusammenfassen mit
    ' 6. Arbeitsmappe speichern und schließen

wb.Close 1


Den Code würde ich auch anders aufbauen um es übersichtlicher zu machen:
Statt auf das Sheet mit With einzugehen würde ich das auf Userform1 machen, da du sheet schon mit ws abgekürzt hast.

Noch was:
Die Zeile
 If .Controls("CheckBox" & i).Value = True Then

sagt im Klartext: "wenn WAHR = WAHR dann"
Einmal WAHR genügt aber völlig, daher kann der Vergleich entfallen.

In der Schleife steht:
ausgewaehlteCheckboxText = .Controls("CheckBox" & i).Caption

ws.Cells(letzteZeile, "I").Value = ausgewaehlteCheckboxText

Warum weist du erst Caption auf die Variable und liest dann die Variabel wieder aus?! Wird die nochmal gebraucht? Ich glaube nicht.

Daher: direkt zuweisen, fertig.
ws.Cells(letzteZeile, "I").Value = .Controls("CheckBox" & i).Caption


Umgestellt, und korrigiert lautet der vollständige Code daher so:
Private Sub Submit_Click()


Dim wb As Workbook
Dim ws As Worksheet
Dim letzteZeile As Long
Dim i As Long
Dim ausgewaehlteCheckboxText As String

' 1. Arbeitsmappe und Arbeitsblatt definieren
Set wb = Workbooks.Open("https://rbcom.sharepoint.com/xxx") ' Pfad zur SharePoint Datei
Set ws = wb.Sheets("Test") ' Name des Arbeitsblattes

' 2. Nächste freie Zeile finden
letzteZeile = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row + 1

' 3. Daten aus UserForm in die Tabelle schreiben
With UserForm1
ws.Cells(letzteZeile, "D").Value = .Project.Text
ws.Cells(letzteZeile, "E").Value = .von.Text
ws.Cells(letzteZeile, "F").Value = .Ende.Value
ws.Cells(letzteZeile, "G").Value = .Requested.Text
' ... weitere TextBoxen oder Controls entsprechend anpassen

' 4. Aktiven Checkbox-Text finden und in die Tabelle schreiben
For i = 1 To 10 ' Anzahl der Checkboxen anpassen
If .Controls("CheckBox" & i).Value Then
ws.Cells(letzteZeile, "I").Value = .Controls("CheckBox" & i).Caption
Exit For
End If
Next i
End With

' 5. Arbeitsmappe speichern und schließen
wb.Close SaveChanges:=True 'oder kurz: wb.Close 1

' 6. Erfolgsmeldung
MsgBox "Daten erfolgreich in " & strZielTabelle & " eingetragen."
End Sub


Das ganze natürlich ungetestet.
Sag mal, was du davon hälst.
Gruß, MCO
Anzeige
AW: Ansprechen von Tabellen klappt nicht
25.06.2025 11:16:00
Sascha
Jetzt wird zwar alles Übertragen allerdings löscht er mir jetzt die angelegte tabelle.....

AW: Ansprechen von Tabellen klappt nicht
25.06.2025 15:05:45
Gast
Hallo

höfliche Frage: ich nehme an, das sich die UserForm1 im Sharepoint befindet??
Was passiert, wenn du die With Klammer so schreibst: --> With wb.UserForm1
Ist von mir nur geraten, Versuch macht klug ....

mfg Piet
Anzeige
AW: Ansprechen von Tabellen klappt nicht
25.06.2025 12:12:54
Sascha
Keine Chance entweder er löscht die Tabelle oder er findet das Arbeitsblatt / die tabelle nicht

Keine Ahnung auch mit KI support bekomm ich das nicht wirklich hin.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige