Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

In UF mit CommandButton Werte vom mehreren Sheets

Betrifft: In UF mit CommandButton Werte vom mehreren Sheets von: Heinz H
Geschrieben am: 21.11.2012 16:58:55

Hallo Leute

In unterer Formel lese ich in einer UF von versch.Tabblättern die Werte von A3:A154 ein.
Die Werte sollten im TB "Formel" ab A501 abwärts eingefügt werden.
Leider funktioniert die Reihenfolge ab 501 nicht.
Weiters möchte ich nur von den Sheets "Jänner","Februar".. bis "Dezember" die Werte von A3:A154 einlesen.
Es sollten dabei die leer Zellen nicht mit angezeigt werden.

Könnte mir dazu bitte jemand behilflich sein?
Gruß Heinz

Option Explicit

Private Sub CommandButton1_Click()
Dim FirstCell&, LastCell&, x&, j&, LoLetzte&
FirstCell = 3
LastCell = 154
Me.ComboBox1.Clear
Sheets("Formel").Cells(500, 1) = "Liste"
For x = ActiveSheet.Index + 1 To Worksheets.Count
 For j = FirstCell To LastCell
  
 'Me.ComboBox1.AddItem Worksheets(x).Cells(j, 3).Value schreibt direkt in CBO
 
 'schreibt in Sheets("Formel") (Registername="Anzeige")
  Sheets("Formel").Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = Worksheets(x).Cells(j, 1). _
 _
Value
  
 Next j
Next x


  'jetzt kann hier in der Tabelle sortiert werden.

With Sheets("Formel")
.Columns("A:A").Sort Key1:=.Range("A501"), Order1:=xlAscending, Header:=xlGuess, _
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 
 'jetzt in CBO schreiben
 LoLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
 
For x = 2 To LoLetzte
 ComboBox1.AddItem Cells(x, 1).Value
Next

End With



End Sub

  

Betrifft: In UF mit CommandButton Werte von mehreren Sheets von: fcs
Geschrieben am: 23.11.2012 07:43:13

Hallo Heinz,

mit nachfolgenden Anpassungen sollte es funktionieren.

Gruß
Franz

Private Sub CommandButton1_Click()
  Dim FirstCell&, LastCell&, x&, j&, LoLetzte&
  Dim wksFormel As Worksheet, varWert As Variant, Zeile_Formel&
  Dim StatusCalc As Long
  
  FirstCell = 3
  LastCell = 154
  
  Me.ComboBox1.Clear 'Diese Zeiile funktioniert nur wenn Commandbutton in Userform!

'Makrobeschleuniger setzen  
  With Application
    .ScreenUpdating = False
    StatusCalc = .Calculation
    .Calculation = xlCalculationManual
    .EnableEvents = False
  End With
  
  Set wksFormel = Sheets("Formel")
  Zeile_Formel = 500
  With wksFormel
    'Alte Daten ab Zeile 500 löschen
    If .Cells(.Rows.Count, 1).End(xlUp).Row > Zeile_Formel Then
      .Range(.Cells(Zeile_Formel, 1), .Cells(.Rows.Count, 1).End(xlUp)).ClearContents
    End If
    .Cells(Zeile_Formel, 1) = "Liste"
  End With
  
  For x = ActiveSheet.Index + 1 To Worksheets.Count
    With Worksheets(x)
      Select Case .Name
        Case "Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", _
            "August", "September", "Oktober", "November", "Dezember"
        
          For j = FirstCell To LastCell
         
          'schreibt in Sheets("Formel") (Registername="Anzeige")
            With .Cells(j, 1)
              If .Value <> "" Then
                Zeile_Formel = Zeile_Formel + 1
                wksFormel.Cells(Zeile_Formel, 1) = .Value
              End If
            End With
          Next j
      End Select
    End With
  Next x
  
  Set wksFormel = Nothing
  
'Makrobeschleuniger zurücksetzen  
  With Application
    .ScreenUpdating = True
    .Calculation = StatusCalc
    .EnableEvents = True
  End With

End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "In UF mit CommandButton Werte vom mehreren Sheets "