Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro zum ausfüllen von Daten





Frage

Hallo, [url]http://www.netupload.de/detail.php?img=7dec041d6b02b0a4433dc39e1dd0719f.xls[/url] unter obigem Link liegt ein kleiner Auszug aus einer Beispiel-Datei. In Spalte A stehen in unregelmäßigen Abständen Daten, diese sollen in alle darüberliegenden freien Zellen kopiert werden. Ich brauche das auch noch für weitere Spalten, aber das kann ich wohl selbst anpassen. Ich vermute, das auch diese Fragestellung hier schon mal gelöst worden ist, gefunden habe ich aber leider nichts. Evtl. genügt mir schon ein Link zu einer vorhanden Lösung. Vielen Dank im voraus mfg Wolfgang H.

Antwort 1 von Marie

Das wäre löschen von Leerzeilen:

Public Sub loeschenleerZeilen()
Dim zeile As Integer
Dim inti As Integer

ActiveSheet.UsedRange.Select
inti = Selection.Rows.Count

zeile = 1

Do While zeile < inti
If ActiveSheet.Cells(zeile, 1) <> "" Then
zeile = zeile + 1
Else
ActiveSheet.Rows(zeile).Delete
inti = inti - 1
End If
Loop

End Sub


Gruß Marie

Antwort 2 von woher

Hallo Marie,
auch brauche genau das was ich versucht habe zu beschreiben!
Meine Beispieldatei ist ein Mini!-Ausschnit aus einer von mehreren Dateien mit jeweils über tausend Datensätzen. Auch in den Zeilen, die in Spalte A keinen Eintrag haben, stehen Daten und zwar Daten die zu der nächsten Kunden-Nr. gehören, die in Spalte A steht.
Mein Problem ließe sich natürlich auch manuell lösen, das dürfte aber Stunden dauern.
Ich hoffe mein Anliegen ist jetzt besser zu verstehen.
mfg
Wolfgang H.

Antwort 3 von aiuto

Hi,

ich hab das so interpretiert:

Option Explicit

Sub nachObenausfuellen()
Dim zeile As Long, wert As Variant, spalte As String
spalte = "A"
'ende der Datenreihe in Spalte 'A'ermittlen und Rückwärts vorarbeiten
For zeile = Range(spalte & "65536").End(xlUp).Row To 1 Step -1
If zeile = 1 Then Exit For 'Beenden wenn am Anfang - verdisch
'Nun wird ermittelt, ob die darüberliegende Zelle Leer ist, _
'und wenn ja, der darunterliegende wert eingetragen, wenn ein neuer
'Wert vorhanden ist, dann wird dieser zum Aktuellen, bis zum Nächsten
If Range(spalte & CStr(zeile)).Value <> "" Then
wert = Range(spalte & CStr(zeile)).Value
If Range(spalte & CStr(zeile - 1)).Value = "" Then _
Range(spalte & CStr(zeile - 1)).Value = wert
End If
Next
End Sub



mfg
vom Helfer

Antwort 4 von woher

Hallo,
DANKE, SUPER.
Das Makro hat den Job in ca. 15 Sekunden erledigt.
mfg
Wolfgang H.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: