matester
Goto Top

Alle leeren Zeilen einer Spalte mit Daten füllen

Hallo Leute,
ich habe ein Problem mit leeren Zellen einer Spalte

Ich benötige ein Makro, dass die Spalte I nach allen leeren Zellen durchsucht und nur bei den leeren Zellen den Inhalt aus der entsprechenden Zeile der Spalte E kopiert.

Ist Zelle I1 leer dann kopiere Inhalt aus E1 in I1
Ist Zelle I2 leer dann kopiere Inhalt aus E2 in I2 usw.

bis Zelle I gefüllt ist.

Tabelle

280fc29233200083645bc305df084651


Vielen Dank im Voraus

Content-ID: 157602

Url: https://administrator.de/contentid/157602

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

it-frosch
it-frosch 27.12.2010 um 13:52:56 Uhr
Goto Top
Hallo matester,

für den Fall das es dir nur um die Lösung des Problems geht brauchst du nicht unbedingt ein Makro dafür.

Sortiere deine Tabelle nach der Spalte I, markiere die Spaltenwerte aus E wo Spaltenwert von I leer ist und kopiere sie in I.
Sollte dich nur einige Sekunden bis Minuten kosten.

Dafür würde ich kein Makro nehmen.

grüße vom it-frosch
matester
matester 27.12.2010 um 14:11:55 Uhr
Goto Top
Hallo it-frosch,

da noch andere Aktionen per Makro abgerufen werden, benötige ich auch für dieses Thema ein Makro.
it-frosch
it-frosch 27.12.2010 um 14:32:41 Uhr
Goto Top
Hallo matester,

nur mal als Ansatz. Ist weder schön noch geprüft und vieles geht auch eleganter. face-wink

Sub werte_eintragen()

' Variablen   
'az= aktuelle_Zeile;  
'z = Zeilenanzahl;  
's1= Spaltennr_1; Spalte E  
's2= Spaltennr_2; Spalte I  

Dim az,z,s1,s2 As Integer
set az=Zeilenanzahl
set s1=5
set s2=9

For az = 1 To z Step 1
        If Worksheets("Name").Cells(az, s2) = "" then Worksheets("Name").Cells(az, s2)= Worksheets("Name").Cells(az, s1)  
Next az

End Sub


[Edit Biber] Codeformatierung [/Edit]
76109
76109 27.12.2010 um 14:38:03 Uhr
Goto Top
Hallo matester!

In etwa so:
Const StartZeile = 3    'Ab Zeile ?  

Sub CellsCopy()
    Dim r As Long
    
    With Sheets("Tabelle1")  
        For r = StartZeile To .Cells(.Rows.Count, "E").End(xlUp).Row  
            If IsEmpty(.Cells(r, "I")) Then .Cells(r, "E").Copy .Cells(r, "I")  
        Next
    End With
End Sub

Gruß Dieter
matester
matester 27.12.2010 um 16:34:08 Uhr
Goto Top
Hallo Dieter,

wieder mal ein super Code!!!

Vielen Dank für die schnelle Hilfe.


Nur eine Frage:

Ich habe das Makro in einer Tabelle mit ca. 15 Datensätzen ausprobiert und es lief einwandfrei.

Dann habe ich das Makro in einer Tabelle mit ca. 3500 Datensätzen (ca. 1000 leere Zellen) laufen lassen, ohne Erfolg. Die beiden Tabellen sind vom Aufbau identisch.

Kannst Du dir das erklären???
it-frosch
it-frosch 27.12.2010 um 17:31:58 Uhr
Goto Top
Hallo matester,

du wirst nicht umhin kommen, dich mit Macroprogrammierung zu beschäftigen. face-wink

Lass das Macro im Visual-Basic Editor (Menü Optionen - Macro - Visual Basic Editor) ablaufen und prüfe im Einzelschrittmodus bis wohin es funktioniert bzw. was das Macro macht.

Einige Ideen wären:
- Tabellenname angepasst ?
- hat die Spalte E vielleicht in Zeile 1 einen leeren Datensatz ?

grüße vom it-frosch
76109
76109 27.12.2010 um 18:20:32 Uhr
Goto Top
Hallo matester, Hallo it-frosch!

Zitat von @it-frosch:
Lass das Macro im Visual-Basic Editor (Menü Optionen - Macro - Visual Basic Editor) ablaufen und prüfe im
Einzelschrittmodus bis wohin es funktioniert bzw. was das Macro macht.
Das ist eine Gute Ideeface-wink
Einige Ideen wären:
- Tabellenname angepasst ?
Auch meine Vermutung?
- hat die Spalte E vielleicht in Zeile 1 einen leeren Datensatz ?
Das macht nichts, da die Zeilen von der Startzeile bis zur letzten Zeile mit Inhalt, in jedem Fall durchlaufen werden.

Gruß Dieter
matester
matester 27.12.2010 um 20:29:16 Uhr
Goto Top
Alles I.O.

Danke für den Hinweis mit den leeren Datensätzen!!!

Die Grundtabelle ist eine CSV-Datei und die leeren Zellen scheinen nicht leer zu sein.
Nachdem ich den Inhalt der Zellen gelöscht habe, funktionierte das Makro super.
Kann mir nicht erklären wie der Fehler zustande kommt.
76109
76109 27.12.2010 um 22:39:38 Uhr
Goto Top
Hallo matester!

Zitat von @matester:
Danke für den Hinweis mit den leeren Datensätzen!!!

Die Grundtabelle ist eine CSV-Datei und die leeren Zellen scheinen nicht leer zu sein.
Nachdem ich den Inhalt der Zellen gelöscht habe, funktionierte das Makro super.
Kann mir nicht erklären wie der Fehler zustande kommt.
Mhm, wahrscheinlich Leerzeichen... o.ä.? face-smile

Schau Dir die CSV-Datei mal in einem Text-Editor an.

Gruß Dieter