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

Forumthread: VBA mehrere Sheets ansprechen

VBA mehrere Sheets ansprechen
11.07.2019 12:40:55
Heinz
Hallo Leute im Forum
Ich möchte gerne mit dem unten stehenden Code gleich mehrere Sheets ansprechen.
Nicht nur den Sheets "Auswertung"
Es geht in allen Sheets genau immer nach den selben Prinzip, Spalten B u. E in Zahl umwandeln.
Könnte mir bitte dazu jemand weiterhelfen?
Danke, Heinz
  • 
    Sub text_in_zahl() ' Spalte B in Sheets Auswertung in Zahl umwandeln
    'Das Makro wandelt Text in Zahlen um
    Sheets("Auswertung").Select
    ' Die letzte beschriebene Zelle wird ermittelt
    Dim loletzte As Long
    loletzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    With Range("b2" & ":b" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    With Range("e2" & ":e" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    End Sub
    


  • Anzeige

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 13:00:24
    ede
    Hallo Heinz,
    dann teste mal:
    
    Public Sub text_in_zahl_allSheets()
    Dim objWorksheet As Worksheet
    Dim loletzte As Long
    Application.ScreenUpdating = False
    For Each objWorksheet In ThisWorkbook.Worksheets
    loletzte = objWorksheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    With objWorksheet.Range("b2" & ":b" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    With objWorksheet.Range("e2" & ":e" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    Next
    Application.ScreenUpdating = True
    End Sub
    

    Gruss
    ede
    Anzeige
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 13:05:09
    Heinz
    Hallo Ede,
    Erstmals Danke für deine Hilfe.
    Ich müsste die Sheets schon beim Namen nennen.
    War mein Fehler, Sorry
  • Es geht in allen Sheets genau immer nach den selben Prinzip, Spalten B u. E in Zahl umwandeln.

  • Es gibt schon einige Sheets die davon nicht betroffen sind.
    Danke, Heinz
    Anzeige
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 13:06:11
    ede
    woran erkennt man die betroffenen Sheets?
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 13:12:28
    Heinz
    Hallo Ede,
    Die betroffenen Sheets haben den Namen;
    Auswertung, 311, 312, 321, 322, 331, 332, 333
    Gruß Heinz
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 13:17:54
    ede
    dann so:
    
    Public Sub text_in_zahl_allSheets2()
    Dim objWorksheet As Worksheet
    Dim loletzte As Long
    Dim antwort As String
    Application.ScreenUpdating = False
    For Each objWorksheet In ThisWorkbook.Worksheets
    Select Case objWorksheet.Name
    Case "Auswertung", "311", "312", "321", "322", "331", "332", "333"
    loletzte = objWorksheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    With objWorksheet.Range("b2" & ":b" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    With objWorksheet.Range("e2" & ":e" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    End Select
    Next
    

    Gruss
    ede
    Anzeige
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 14:09:12
    Heinz
    Hallo Ede,
    Super, recht herzlichen Dank !!!
    SG, Heinz
    AW: VBA mehrere Sheets ansprechen
    11.07.2019 13:10:58
    ede
    dann hier mal mit Abfrage auf Sheet-Name:
    
    Public Sub text_in_zahl_allSheets()
    Dim objWorksheet As Worksheet
    Dim loletzte As Long
    Dim antwort As String
    Application.ScreenUpdating = False
    For Each objWorksheet In ThisWorkbook.Worksheets
    antwort = MsgBox("Bearbeiten von Sheet: " & objWorksheet.Name, vbYesNo)
    If antwort = vbYes Then
    loletzte = objWorksheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    With objWorksheet.Range("b2" & ":b" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    With objWorksheet.Range("e2" & ":e" & loletzte)
    .NumberFormat = "General"
    .Value = .Value
    End With
    End If
    Next
    Application.ScreenUpdating = True
    End Sub
    

    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

    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