Registriert seit: 23.01.2017
Version(en): 365 - Version 2208
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
Registriert seit: 05.09.2017
Version(en): 2013
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:1 Nutzer sagt Danke an Werner.M für diesen Beitrag 28
• Klaus
Registriert seit: 23.01.2017
Version(en): 365 - Version 2208
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
Registriert seit: 05.09.2017
Version(en): 2013
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:1 Nutzer sagt Danke an Werner.M für diesen Beitrag 28
• Klaus
Registriert seit: 23.01.2017
Version(en): 365 - Version 2208
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
Könnten wir den Code noch so anpassen, dass solche Zellen auch erkannt werden?
Vielen Dank für deine Mühe bis hier hin schon mal.
Registriert seit: 05.09.2017
Version(en): 2013
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:1 Nutzer sagt Danke an Werner.M für diesen Beitrag 28
• Klaus
Registriert seit: 23.01.2017
Version(en): 365 - Version 2208
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
Registriert seit: 05.09.2017
Version(en): 2013
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:1 Nutzer sagt Danke an Werner.M für diesen Beitrag 28
• Klaus
Registriert seit: 23.01.2017
Version(en): 365 - Version 2208
... oh sorry - die Software hier hat aus meinem "C" ein Copyright Zeichen gemacht.
Also Zeile "C" würde ich benötigen.
Registriert seit: 05.09.2017
Version(en): 2013
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:1 Nutzer sagt Danke an Werner.M für diesen Beitrag 28
• Klaus