leere Zelle mit Wert darüber füllen
#1
Hallo miteinander,

ich möchte in Spalte B ab Zeile 7 die leeren Zellen mit dem Wert darüber füllen.
Allerdings ist die Länge der Spalte unbekannt.

Alles was ich dazu im Inet gefunden habe ist auf eine festgelegte Spaltenlänge begrenzt.
Leider bekomme ich das nicht so umgebaut, dass der Code in der letzten Zelle stoppt.

Könnt mir jemand helfen bitte?

Code:
    With Intersect(Range("B:B"), ActiveSheet.UsedRange)
        .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Value = .Value
    End With

Liebe Grüße
Klaus
Top
#2
Hallo,

und in welcher Spalte soll/kann die letzte belegte Zelle ermittelt werden?

Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • Klaus
Top
#3
Hallo Werner,

...ich grübel jetzt, ob ich das falsch beschrieben hab...
In Spalte B an Zelle 7 soll es losgehen und am Ende der Spalte B, also der letzten befüllten Zelle aufhören. 

Liebe Grüße 
Klaus
Top
#4
Hallo,

so:
Code:
Public Sub aaa()
Dim loLetzte As Long

'Blattname anpassen
With Worksheets("DeinBlattname")
    loLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row
    If WorksheetFunction.CountBlank(.Range("B7:B" & loLetzte)) > 0 Then
        .Range("B7:B" & loLetzte).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Range("B7:B" & loLetzte).Value = .Range("B7:B" & loLetzte).Value
    End If
End With
End Sub

Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • Klaus
Top
#5
Hallo Werner,

es funktioniert fantastisch... 
das hätte ich ja nie allein hinbekommen.

Leider musste / konnte ich so feststellen, dass da jemand neben normalen leeren Zellen auch Zellen mit Leerzeichen verwendet hat  16
Könnten wir den Code noch so anpassen, dass solche Zellen auch erkannt werden?  69

Vielen Dank für deine Mühe bis hier hin schon mal.
Top
#6
Hallo,

dann einfach davor die Leerzeichen per Replace durch nichts ersetzen.
Code:
Public Sub aaa()
Dim loLetzte As Long

'Blattname anpassen
With Worksheets("Tabelle1")
    loLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row
    .Range("B7:B" & loLetzte).Replace " ", ""
    If WorksheetFunction.CountBlank(.Range("B7:B" & loLetzte)) > 0 Then
        .Range("B7:B" & loLetzte).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Range("B7:B" & loLetzte).Value = .Range("B7:B" & loLetzte).Value
    End If
End With

End Sub

Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • Klaus
Top
#7
Hahaaaa.... Werner, das klappt hervorragend.
Ich bin begeistert.
Vielen herzlichen Dank.

Hast du vielleicht auch noch eine Idee, wie man eine Zeile ©, in der Datumsangaben teilweise als Text formatiert sind, (nämlich so 23,01,20), in ein echtes Datumsformat (also Do - 23.01.20) umwandeln kann?
Und wieder ist die länge der Zeile unbekannt.

Oder soll ich besser für diese Frage ein neues Thema schreiben?

Viele Grüße
Klaus
Top
#8
Hallo,

und welche Zeile denn, Exel hat da ein paar davon.

Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • Klaus
Top
#9
... oh sorry - die Software hier hat aus meinem "C" ein Copyright Zeichen gemacht.
Also Zeile "C" würde ich benötigen.
Top
#10
Hallo,

Zeile C gibt es nicht, wenn, dann Spalte C.

Und von wo ab denn, wieder ab C7 ?

Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • Klaus
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste