Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

Daten in intelligente Tabelle schreiben

Daten in intelligente Tabelle schreiben
04.04.2023 10:39:15
Tim

Hallo zusammen,

ich möchte gern Daten aus einer Standardtabelle in eine intelligente Tabelle schreiben, dabei habe ich folgende Herausforderung.

In der intelligenten Tabelle können einzelne Zeilen zwischendrin mal leer sein, da der Inhalt durch einen Mitarbeiter entfernt wurde. Beim Übertrag aus der Standardtabelle möchte ich gern diese Zeilen als erstes füllen bevor weitere Zeilen an die intelligente Tabelle angehangen werden.

Mein aktuelles Problem besteht darin die leeren Zeilen zwischendrin zu beschreiben, zudem bestimmt wird mir nicht bei jedem Lauf die letzte Zeile der intelligenten Tabelle bestimmt.

Wer kann mir bei diesem Thema weiterhelfen?

Sub Daten_in_intelligente_Tabelle_übertragen()
Dim i as Long
Dim ILV as Workbook, Datenbank as Workbook
Dim ILV_Batt as Worksheet, DB_Blatt as Worksheet
Dim NächteZeile as Integer

Set ILV = Workbooks("intelliente_Tabelle.xlsx")
Set ILV_Blatt = ILV.Worksheets("Datenbank")

Set Datenbank = Workbooks("Standard_Tabelle.xlsx")
Set DB_Blatt = Datenbank.Worksheets("Tabelle1")



letzteZeile_DB_Blatt = DB_Blatt.Cells(DB_Blatt.Rows.Count, 1).End(xlUp).Row
letzteZeile_ILV_Blatt = ILV_Blatt.Range("Datenbank").Row + ILV_Blatt.Range("Datenbank").Rows.Count - 1

NächsteZeile = letzteZeile_ILV_Blatt

With DB_Blatt
For i = 2 To letzteZeile_DB_Blatt
If .Cells(i, 13) > "" Then
Do
If ILV_Blatt.Cells(NächsteZeile + 1, 1) = "" Then
ILV_Blatt.Cells(NächsteZeile + 1, 1) = .Cells(i, 1) 'Name

Exit Do
End If
NächsteZeile = NächsteZeile + 1
Loop While NächsteZeile = letzteZeile_ILV_Blatt
DB_Blatt.Rows(i).ClearContents
End If
Next i
End With

End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in intelligente Tabelle schreiben
04.04.2023 12:45:38
MCO
Hallo Tim!

Heist deine intelligente Tabelle tatsächlich intelliente_Tabelle? Das nennt man dann wohl peinlichen Rechtschreibfehler.

Zum Thema:
Versuch das mal.
Leider hatte ich Deine Tabelle nicht zum Testen da.


Sub Daten_in_intelligente_Tabelle_übertragen()
    Dim i As Long
    Dim ILV As Workbook, Datenbank As Workbook
    Dim ILV_Batt As Worksheet, DB_Blatt As Worksheet
    Dim NächteZeile As Integer
    
    Set ILV = Workbooks("intelliente_Tabelle.xlsx")
    Set ILV_Blatt = ILV.Worksheets("Datenbank")
    
    Set Datenbank = Workbooks("Standard_Tabelle.xlsx")
    Set DB_Blatt = Datenbank.Worksheets("Tabelle1")
    
    letzteZeile_DB_Blatt = DB_Blatt.Cells(DB_Blatt.Rows.Count, 1).End(xlUp).Row
    letzteZeile_ILV_Blatt = ILV_Blatt.Range("Datenbank").Row + ILV_Blatt.Range("Datenbank").Rows.Count - 1
    
    With DB_Blatt
        For Each cl In .Range("N:N" & letzteZeile_DB_Blatt).SpecialCells(xlCellTypeConstants) 'nur gefüllte Zellen in "N"
            letzteZeile_ILV_Blatt = ILV_Blatt.Range("Datenbank").End(xlDown).Row + 1
            ILV_Blatt.Cells(letzteZeile_ILV_Blatt, 1) = .Cells(cl.row, 1) 'Name
            rows(cl.row).entirerow.ClearContents 'Besser später gesammelt löschen
        Next cl
    End With
    
    Set Datenbank = Nothing
    Set DB_Blatt = Nothing
    Set ILV = Nothing
    Set ILV_Blatt = Nothing

End Sub
Gruß, MCO


Anzeige
AW: Daten in intelligente Tabelle schreiben
04.04.2023 14:02:38
Tim
Hallo MCO,

vielen Dank für deine Antwort und ja es ist ein Rechtschreibfehler ;)

Deinen Code habe ich probiert, dazu die Variable cl als Object deklariert, jedoch erhalte ich folgende Meldung.

Die Methode Range für das Objekt _Worksheet ist fehlgeschlagen.

Zudem noch mal genauer meine Zielbeschreibung. Ich möchte beim Übertrag erst alle leeren Zeilen auffüllen die in der Tabelle sind und anschließend die Tabelle fortschreiben wenn alle leeren Zeilen aufgefüllt sind.


AW: Daten in intelligente Tabelle schreiben
05.04.2023 09:18:14
MCO
Hallo Tim!

cl ist kein Object sondern Range, bitte umdeklarieren.

Leider hast du nicht die Zeile beschrieben, die den Fehler verursacht.
Möglicherweise musst du aber hier
rows(cl.row).entirerow.ClearContents 'Besser später gesammelt löschen
einen Punkt "." vorsetzten.

Probiers mal aus.

Gruß, MCO


Anzeige
AW: Daten in intelligente Tabelle schreiben
04.04.2023 20:29:13
GerdL
Hallo Tim!
Sub Unit()

    Dim LO As ListObject, C As Range

    Set LO = Worksheets(1).ListObjects(1)
    Set C = LO.Range.Columns(1).Find("", LookIn:=xlValues, lookat:=xlWhole)

    If C Is Nothing Then
        MsgBox "Keine Leerzelle in " & LO.HeaderRowRange.Cells(1)
    Else
        MsgBox C.Address
        MsgBox C.Row
End If

End Sub
Gruß Gerd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige