Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sheet ansprechen mit einer Funktion

Sheet ansprechen mit einer Funktion
09.08.2018 20:43:18
Friedrich
Hallo an alle,
habe jetzt lange probiert aber einfach keine Lösung gefunden.
Möchte gerne die Berechnungen der beiden Variablen "anzahlzeilen" und "anzahlleerezeilen" in dem jeweils aktiven Tabellenblatt (t) ausführen lassen. Leider habe ich keine Ahnung wie ich das hin bekommen. Den Befehl Sheets(t).Select oder .Activate will ich nicht benutzen.
Gibt es noch eine andere Möglichkeit?
Vielen Dank vorab! :)
Modul
Option Explicit

Sub datenkopieren()
Dim spaltenfuellen As Long, anzahlleerezeilen As Long, anzahlzeilen As Long
Dim tabelle As Worksheet
Dim t As Integer
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
t = 0
For Each tabelle In ActiveWorkbook.Sheets
t = t + 1
If tabelle.Name  "Übersicht" Then
If tabelle.Name  "COTdaten" Then
anzahlzeilen = WorksheetFunction.CountA(Range("A4:A" & Cells(Rows.Count, 1).End(xlUp).   _
_
_
Row))
anzahlleerezeilen = WorksheetFunction.CountBlank(Range("C4:C" & Cells(Rows.Count, 3). _
End(xlUp).Row))
If anzahlleerezeilen  0 Then
With Sheets(t)
.Range("C" & 4 + anzahlleerezeilen).AutoFill Destination:=Range("C4" & ":C" & 4  _
_
_
+ anzahlleerezeilen), Type:=xlFillDefault
.Range("F" & 4 + anzahlleerezeilen & ":L" & 4 + anzahlleerezeilen).AutoFill  _
Destination:=Range("F4" & ":L" & 4 + anzahlleerezeilen), Type:=xlFillDefault
.Range("O" & 4 + anzahlleerezeilen).AutoFill Destination:=Range("O4" & ":O" & 4  _
_
_
+ anzahlleerezeilen), Type:=xlFillDefault
.Range("R" & 4 + anzahlleerezeilen).AutoFill Destination:=Range("R4" & ":R" & 4  _
_
_
+ anzahlleerezeilen), Type:=xlFillDefault
.Range("U" & 4 + anzahlleerezeilen).AutoFill Destination:=Range("U4" & ":U" & 4  _
_
_
+ anzahlleerezeilen), Type:=xlFillDefault
.Range("X" & 4 + anzahlleerezeilen).AutoFill Destination:=Range("X4" & ":X" & 4  _
_
_
+ anzahlleerezeilen), Type:=xlFillDefault
.Range("AA" & 4 + anzahlleerezeilen).AutoFill Destination:=Range("AA4" & ":AA" & _
_
_
4 + anzahlleerezeilen), Type:=xlFillDefault
End With
End If
End If
End If
Next tabelle
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheet ansprechen mit einer Funktion
09.08.2018 20:48:37
Hajo_Zi
With Sheets(t)
' Punkte nicht vergessen
End With

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Sheet ansprechen mit einer Funktion
09.08.2018 20:52:16
Friedrich
Hallo,
vielen Dank für die Nachricht. Das habe ich leider schon probiert und funktioniert anscheinend nicht mir der Funktion. Dann bekomme ich immer Laufzeitfehler 438 - Objekt wird nicht unterstützt
With Sheets(t)
.anzahlzeilen = WorksheetFunction.CountA(Range("A4:A" & Cells(Rows.Count, 1).End(xlUp).Row))
.anzahlleerezeilen = WorksheetFunction.CountBlank(Range("C4:C" & Cells(Rows.Count, 3).End(xlUp).Row))
End With
Anzeige
AW: Sheet ansprechen mit einer Funktion
09.08.2018 21:11:33
Hajo_Zi
Du möchtest meinen Beitrag nicht komplett lesen.
Da ich nicht für den Papierkorb arbeite bin ich raus.
Gruß Hajo
Schwachsinn. o.w.T.
09.08.2018 21:20:39
Werner
AW: Schwachsinn.
09.08.2018 22:27:21
MatthiasG
Genau!
Hajo, ich will auch auf deine Blacklist bitte.
AW: Sheet ansprechen mit einer Funktion
09.08.2018 21:14:40
Nepumuk
Hallo Friedrich,
so:
With tabelle
    .anzahlzeilen = WorksheetFunction.CountA( _
        .Range("A4:A" & .Cells(.Rows.Count, 1).End(xlUp).Row))
    .anzahlleerezeilen = WorksheetFunction.CountBlank( _
        .Range("C4:C" & .Cells(.Rows.Count, 3).End(xlUp).Row))
End With

Gruß
Nepumuk
Anzeige
AW: Sheet ansprechen mit einer Funktion
09.08.2018 21:19:49
Werner
Hallo Nepumuk,
du hast aber auch Punkte vor den Variablennamen, die gehören dort aber doch nicht hin.
Gruß Werner
AW: Sheet ansprechen mit einer Funktion
09.08.2018 21:30:27
Nepumuk
Hallo Werner,
da hast du Recht. Keine Ahnung warum ich die da hin gemacht habe.
Im Rest der Prozedur waren noch andere Fehler, ich hab sie mal überarbeitet:
Option Explicit

Public Sub datenkopieren()
    
    Dim anzahlleerezeilen As Long
    Dim tabelle As Worksheet
    
    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With
    
    For Each tabelle In ActiveWorkbook.Worksheets
        With tabelle
            If .Name <> "Übersicht" Then
                If .Name <> "COTdaten" Then
                    
                    anzahlleerezeilen = WorksheetFunction.CountBlank( _
                        .Range("C4:C" & .Cells(.Rows.Count, 3).End(xlUp).Row))
                    
                    If anzahlleerezeilen <> 0 Then
                        
                        .Range("C" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("C4:C" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        .Range("F" & 4 + anzahlleerezeilen & ":L" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("F4:L" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        .Range("O" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("O4:O" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        .Range("R" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("R4:R" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        .Range("U" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("U4:U" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        .Range("X" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("X4:X" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        .Range("AA" & 4 + anzahlleerezeilen).AutoFill _
                            Destination:=.Range("AA4:AA" & 4 + anzahlleerezeilen), Type:=xlFillDefault
                        
                    End If
                End If
            End If
        End With
    Next tabelle
    
    With Application
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Sheet ansprechen mit einer Funktion
10.08.2018 00:33:39
Friedrich
Hallo Nepumuk,
vielen Dank für die Erklärung. Ich hatte das nicht verstanden, dass einfach jeder Range oder Cells Befehl mit einem Punkt versehen werden muss. Aber jetzt leuchtet mir das auch ein. Vielen Dank, ich lerne jeden Tag was neues! :) :) :)
Und super, dass du mir direkt noch die anderen With Anwendung mit korrigiert hast!
Grüße
AW: Sheet ansprechen mit einer Funktion
10.08.2018 00:35:10
Friedrich
Und ein Dankeschön ebenso an Werner, dass ihr die Zeit aufgewendet habt mir zu helfen! :)
Gerne u.Danke für die Rückmeldung. o.w.T.
10.08.2018 21:50:45
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige