leere zelle suchen (vba)

ang3l

Ensign
Registriert
Okt. 2006
Beiträge
192
ich wollte fragen ob einer weiss wie der code geht, der mir ermöglicht

- die freie/nicht beschriebene zelle in der spalte C zu ermitteln
- wenn er sie gefunden hat anzuwählen

danke schon im voraus
 
Worum geht es denn? Datenbank? Excel?

Im prinzip muss du einfach mit einer for/foreach - Schleife alle Elemente die in Spalte C sind durchgehen und jedesmal abfragen ob die Länge des Strings 0 ist.

Grüße

tewes
 
um excel..

kannst du mir dies notieren da ich nicht wirklich ahnung habe von vba:(
 
Hab keine ahnung wie man mit Excel arbeitet.
Hier mal Pseudo Code:
Code:
Dim ExcelObj As new ???//die Frgezeichen stehen für das Excel Objekt. Weiss nicht wie das heisst.
for i As Integer = 0 to ExcelObj(C).Lenght()
    if ExcelObj(C, i).Lenght() > 0 Then
        //Was immer du machen willst.
   End IF
Next i
So irgendwie könnte es Funktionieren ;)

Grüße

tewes
 
Hier die Quick & Dirty Lösung:

Code:
Option Explicit
Dim x As Integer
Dim colIdentifier As String
Private Sub get_free_cell()
colIdentifier = "C"
x = 1
Range(colIdentifier & x).Select
While ActiveCell.Value <> ""
    x = x + 1
    Range(colIdentifier & x).Select
Wend
End Sub

Meines Wissens gibt es noch eine vordefinierte Funktion die genau dies wesentlich effizienter erledigt, aber mein Sieb das sich Gedächtniss nennt kann sich einfach nicht mehr an den Namen erinnern :D

Der oben stehende Code ist relativ langsam (angenommen man hat 32000 Zeilen in der Excel tabelle stehen) außerdem wird er nur bis 32xxx Zeilen funktionieren, danach wird die integer Variable überlaufen.
 
thx vielmals an euch zwei!!

hab die version von cheft eingefügt und das funktioniert einwandfrei:schluck:
 
habe noch eine weitere frage..

es kann sein dass man bei meiner tabelle mehere gleiche datensätze verfassen muss.. das kann bis auf 200 rauf gehen und ja dass man nicht genau zählen muss, wollte ich machen, dass man einfach per inputbox die anzahl definieren kann und dann kopiert es die angewählten zellen nach unten..

bis jetzt habe ich folgendes zusammengebastelt..


zahl = Inputbox("blablabla")

ActiveCell.Select

Selection.AutoFill Destination:=Range(".... <-- weiss ich nicht mehr weiter:(



danke im voraus
 
Glaub das sollte sich so realisieren lassen:

Code:
Private Sub fill_automatic()
    Dim zahl As Integer
    Dim aktiveZeile As Integer
    Dim aktiveSpalte As String
       
    zahl = InputBox("Wieviel?")
' Aktive Zeile rauslesen
    aktiveZeile = ActiveCell.Row
' Bischen kompliziert, aber Excel gibt bei ActiveCell.row nur einen numerischen Spaltenindex zurück
' Daher muss man sich den Spaltennamen (Buchstabe) mühsam aus der Adresse raussuchen
    aktiveSpalte = Right(ActiveCell.Address, Len(ActiveCell.Address) - 1)
    aktiveSpalte = Left(aktiveSpalte, InStr(aktiveSpalte, "$") - 1)
' Nun per Range alle zu füllenden Spalten selektieren, und den Text aus der activen Zelle einfügen.
' Fertig!
    Range(aktiveSpalte & aktiveZeile, aktiveSpalte & aktiveZeile + (zahl - 1)).Value = ActiveCell.Value
    
' Allerdings scheint es so, dass man die aktive Zelle nach Texteingabe erst verlassen muss,
' ehe die Sub anständig funktioniert. Dies könnte man allerdings automatisieren
End Sub
 
Zurück
Oben