Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige

Forumthread: Rows.Count für bestimmte Range

Rows.Count für bestimmte Range
04.08.2015 17:04:15
Klaus
Hallo zusammen. ich möchte für die Range ("B4:B20") eine Rows.Count funktion ausführen. Wenn ich das ganze mit ("B") anstatt ("B4:B20") schreibe funktioniert es.
kann mir jemand helfen?
Vielen Dank
Hier mein Code:
Private Sub CommandButton1_Click()
Dim anlegen
anlegen = InputBox("Bitte Namen des neuem Mitarbeiters eingeben?", "Neuen Mitarbeiter Anlegen!") _
If anlegen = "" Then
MsgBox ("Es Muss ein Name eingegeben werden!")
Else
Dim lr As Long
Dim br As Long
Dim neu As Worksheet
Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
Set neu = ActiveSheet
neu.Name = anlegen
lr = Range("F" & Rows.Count).End(xlUp).Row + 1
Range("F" & lr).Value = anlegen
lr = Range("G" & Rows.Count).End(xlUp).Row + 1
Range("G" & lr).Value = "Welser GmbH"
Sheets(anlegen).Range("E1").Value = "Welser GmbH"
Sheets(anlegen).Range("J1").Value = anlegen
br = Sheets("Monatsbericht").Range("B" & Rows.Count).End(xlUp).Row + 1
Sheets("Monatsbericht").Range("B" & br).Value = anlegen
End If
End Sub

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: lr = Cells(Rows.Count, "G").End(xlUp).Row + 1
04.08.2015 17:12:08
Michael
.

AW: Rows.Count für bestimmte Range
04.08.2015 17:13:31
JoWE
Hallo Klaus,
meinst Du so?
AnzahlZeilen = Range("B4:B20").Rows.Count
? AnzahlZeilen
17
(funktioniert bei mir im Direktfenster problemlos)
Gruß
Jochen

AW: Rows.Count für bestimmte Range
04.08.2015 17:21:14
Klaus
Hallo, für diese Zeile möchte ich die Range "B" auf "B4:B20")ändern:
br = Sheets("Monatsbericht").Range("B" & Rows.Count).End(xlUp).Row + 1
Sheets("Monatsbericht").Range("B" & br).Value = anlegen

Anzeige
AW: Rows.Count für bestimmte Range
04.08.2015 17:52:46
JoWE
Hallo Klaus,
also so?
br = sheets("Monatsbericht").Range("B" & Sheets("Monatsbericht").Range("B4:B20").Rows.Count).end(xlup).row+1
Gruß
Jochen

AW: Rows.Count für bestimmte Range
05.08.2015 09:31:21
Klaus
Hallo zusammen,
folgendens soll passieren:
wenn ich den CommandButton1_Click betätige soll im Arbeitsblatt "Monatsbericht" im Bereich der Zellen B4:B20 der Inhalt von Inputbox "anlegen" in die erste freie Zelle von diesem Bereich B4:B20 eingetragen werden.

Anzeige
AW: Rows.Count für bestimmte Range
05.08.2015 09:47:35
EtoPHG
Hallo Klaus,
Und was, wenn alle Zellen schon belegt sind?
Gruess Hansueli

AW: Rows.Count für bestimmte Range
05.08.2015 09:50:59
Klaus
Dann soll nichts passieren.
aber der Bereich ist in dem Fall so groß, das dieser nie voll werden kann :-)

AW: Rows.Count für bestimmte Range
05.08.2015 09:53:02
hary
Moin
Range("B4:B20").SpecialCells(xlCellTypeBlanks).Cells(1, 1) = anlegen

gruss hary

Anzeige
AW: Rows.Count für bestimmte Range
05.08.2015 10:11:51
Klaus
Danke hary,
klappt perfekt!
Auch den anderen beteiligten vielen Dank !

AW: Rows.Count für bestimmte Range
05.08.2015 10:49:45
EtoPHG
Hallo Klaus,
Zitat: klappt perfekt!
Bis mal der Bereich voll ist :-(((
Sowas nennt ihr also testen!
Mein Vorschlag:
    Dim rC As Range
For Each rC In Worksheets("Monatsbericht").Range("B4:B20")
If IsEmpty(rC) Then rC = anlegen: Exit For
Next rC
Gruess Hansueli

Anzeige
AW: Rows.Count für bestimmte Range
05.08.2015 11:14:58
Klaus
Hallo EtoPHG,
Auch den Vorschlag von dir habe ich "getestet" und funktioniert ebenfalls.
zum testen: ich bin auch ein voller noob und der gewählte Zellbereich ist so ausreichend, das hier nichts "Voll" wird :-)
aber dein Vorschlag läuft und ich bedanke mich dafür!!
bin für jede Hilfe dankbar :-)
GRUSS Klaus

Anzeige
AW: Rows.Count für bestimmte Range
04.08.2015 17:24:19
EtoPHG
Hallo Klaus,
Zitat: für ("B4:B20") eine Rows.Count ausführen
Tönt irgendwie sinnfrei. Das wird immer 17 ergeben.
Zitat: Wenn ich das ganze mit ("B") anstatt ("B4:B20") schreibe funktioniert es.
Wenn du was wie schreibst? Und warum fragst du, wenn es doch funktioniert?
Also: Was genau willst du machen? Wo in deinem Code haperts oder tritt ein Fehler auf?
Gruess Hansueli
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Rows.Count in Excel VBA für spezifische Bereiche nutzen


Schritt-für-Schritt-Anleitung

Um die Rows.Count Funktion in Excel VBA für einen spezifischen Bereich wie B4:B20 zu nutzen, kannst du folgenden Code verwenden:

Private Sub CommandButton1_Click()
    Dim anlegen As String
    anlegen = InputBox("Bitte Namen des neuen Mitarbeiters eingeben?", "Neuen Mitarbeiter Anlegen!")

    If anlegen = "" Then
        MsgBox ("Es muss ein Name eingegeben werden!")
    Else
        Dim lr As Long
        Dim br As Long
        Dim neu As Worksheet
        Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
        Set neu = ActiveSheet
        neu.Name = anlegen

        ' Letzte Zeile in Spalte F
        lr = Range("F" & Rows.Count).End(xlUp).Row + 1
        Range("F" & lr).Value = anlegen

        ' Letzte Zeile in Spalte G
        lr = Range("G" & Rows.Count).End(xlUp).Row + 1
        Range("G" & lr).Value = "Welser GmbH"

        ' Eintragen in den Monatsbericht
        br = Sheets("Monatsbericht").Range("B4:B20").Rows.Count
        Sheets("Monatsbericht").Range("B" & br).Value = anlegen
    End If
End Sub

In diesem Code wird Rows.Count verwendet, um die Anzahl der Zeilen in einem bestimmten Bereich zu zählen.


Häufige Fehler und Lösungen

Fehler 1: AnzahlZeilen = Range("B4:B20").Rows.Count ergibt immer 17.

Lösung: Das ist korrekt, da der Bereich immer 17 Zeilen umfasst. Um die letzte befüllte Zeile zu finden, verwende:

br = Sheets("Monatsbericht").Range("B4:B20").SpecialCells(xlCellTypeBlanks).Cells(1, 1).Row

Fehler 2: Der Wert wird nicht in die erste leere Zeile eingetragen.

Lösung: Stelle sicher, dass du die richtige Methode verwendest, um die erste leere Zelle zu finden. Hier ein Beispiel:

Dim rC As Range
For Each rC In Worksheets("Monatsbericht").Range("B4:B20")
    If IsEmpty(rC) Then
        rC.Value = anlegen
        Exit For
    End If
Next rC

Alternative Methoden

Falls du die Rows.Count Funktion nicht verwenden möchtest, um die letzte befüllte Zeile zu finden, kannst du auch Range("B4:B20").SpecialCells(xlCellTypeBlanks) nutzen, um die leeren Zellen zu identifizieren und dort deine Werte einzutragen.

Range("B4:B20").SpecialCells(xlCellTypeBlanks).Cells(1, 1) = anlegen

Praktische Beispiele

  1. Einfügen eines Wertes in die erste leere Zelle in einem bestimmten Bereich:
Private Sub CommandButton1_Click()
    Dim anlegen As String
    anlegen = InputBox("Bitte Namen des neuen Mitarbeiters eingeben?", "Neuen Mitarbeiter Anlegen!")

    If anlegen <> "" Then
        Dim rC As Range
        For Each rC In Worksheets("Monatsbericht").Range("B4:B20")
            If IsEmpty(rC) Then
                rC.Value = anlegen
                Exit For
            End If
        Next rC
    Else
        MsgBox ("Es muss ein Name eingegeben werden!")
    End If
End Sub

Tipps für Profis

  • Nutze Cells in Kombination mit Rows.Count, um flexibler zu sein. Beispiel: Cells(Rows.Count, "B").End(xlUp).Row gibt dir die letzte befüllte Zeile in Spalte B.
  • Überprüfe immer, ob der Bereich leer ist, bevor du Daten einfügst, um Fehler zu vermeiden.
  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden.

FAQ: Häufige Fragen

1. Wie zähle ich die Zeilen in einem bestimmten Bereich? Verwende Range("B4:B20").Rows.Count, um die Anzahl der Zeilen in diesem Bereich zu zählen.

2. Wie finde ich die letzte befüllte Zelle in einer Spalte? Nutze Range("B" & Rows.Count).End(xlUp).Row, um die letzte befüllte Zeile in Spalte B zu finden.

3. Was passiert, wenn der Bereich voll ist? Du kannst eine Bedingung hinzufügen, um zu überprüfen, ob der Bereich voll ist, bevor du Werte einfügst.