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

Forumthread: Rows.Count für bestimmte Range

Rows.Count für bestimmte Range
04.08.2015 15: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 15:12:08
Michael
.

AW: Rows.Count für bestimmte Range
04.08.2015 15: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 15: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 15: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 07: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 07: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 07: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 07: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 08:11:51
Klaus
Danke hary,
klappt perfekt!
Auch den anderen beteiligten vielen Dank !

AW: Rows.Count für bestimmte Range
05.08.2015 08: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 09: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 15: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
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige