Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro in unbekannter Anzahl Tabellen ausführen

Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 16:41:38
Patrick
Hallo zusammen
Ich habe ein Makro, das mir den Betrag in einer Zelle (T2) in ihre Ziffern zerlegt und auf mehrere Zellen (A2 bis x) in der selben Tabelle verteilt. Das funktioniert sehr gut, aber nur im aktiven Tabellenblatt.
Die Datei (daten.xls) selbst besteht aus folgenden Tabellen:
- Start
- Import
- x weitere Tabellen. Als Name hat jede dieser Tabellen eine Nummer die immer wieder anders lautet
Meine Frage:
Wie müsste ich folgendes Makro anpassen, damit es auf alle Tabellen (Anzahl und Namen unbekannt) angewendet wird ausser auf die Tabellen "Start" und "Import"?
Das Makro:
' ### Start Betrag zerlegen und auf einzelne Zellen verteilen
Dim intLetter As Integer
Dim strAnalyse As String
Dim strResult As String
strAnalyse = ActiveSheet.Cells(1, 2)
strResult = ""
For intLetter = 1 To Len(strAnalyse)
strResult = Mid(strAnalyse, intLetter, 1) & strResult
Next
ActiveSheet.Cells(1, 1) = strResult
Dim zaehl As Long
For zaehl = 1 To Len(Cells(1, 1))
Cells(2, zaehl) = Mid(Cells(1, 1), zaehl, 1)
Next
' ### Ende Betrag zerlegen und auf einzelne Zellen verteilen
Vielen Dank im Voraus!
Grüsse
Patrick

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 16:50:40
Timo
Hallo Patrick,
ohne es getestet zu haben, versuch es mal hiermit:
wks=Worksheets.Count
For i=3 to wks
' ### Start Betrag zerlegen und auf einzelne Zellen verteilen
Dim intLetter As Integer
Dim strAnalyse As String
Dim strResult As String
strAnalyse = ActiveSheet.Cells(1, 2)
strResult = ""
For intLetter = 1 To Len(strAnalyse)
strResult = Mid(strAnalyse, intLetter, 1) & strResult
Next
ActiveSheet.Cells(1, 1) = strResult
Dim zaehl As Long
For zaehl = 1 To Len(Cells(1, 1))
Cells(2, zaehl) = Mid(Cells(1, 1), zaehl, 1)
Next
' ### Ende Betrag zerlegen und auf einzelne Zellen verteilen
Next i
Anzeige
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 17:01:06
Patrick
Hallo Timo
Geht leider nicht :-(
Meldung:
Laufzeitfehler '91'
Objektvariable oder With-Blockvariable nicht festgelegt
Markierter Bereich beim Debuggen:
wks = Worksheets.Count
Vor diesem Makro wird noch
' ### Start Blattname in Zelle reinschreiben
Dim wks As Worksheet
For Each wks In Worksheets
Worksheets(wks.Name).Range("T3").Value = wks.Name
Next wks
' ### Ende Blattname in Zelle reinschreiben
Ausgeführt. Liegts ev. daran?
Danke & Grüsse
Patrick
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 16:54:05
Reinhard
Hallo Patrick,


Sub test()
Dim zaehl As Long
Dim intLetter As Integer
Dim strAnalyse As String
Dim strResult As String
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Import" And ws.Name <> "" Then
strAnalyse = ws.Cells(1, 2)
strResult = ""
For intLetter = 1 To Len(strAnalyse)
strResult = Mid(strAnalyse, intLetter, 1) & strResult
Next
ws.Cells(1, 1) = strResult
For zaehl = 1 To Len(Cells(1, 1))
Cells(2, zaehl) = Mid(Cells(1, 1), zaehl, 1)
Next
End If
Next ws
End Sub

Gruß
Reinhard
Anzeige
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 17:08:48
Patrick
Hallo Reinhard
Danke für Deinen Input. Leider geht das auch nicht:
Laufzeitfehler '13'
Typen unverträglich
Markierter Bereich beim Debuggen:
strAnalyse = ws.Cells(1, 2)
Woran kann das nun liegen? ;-)
Vielen Dank & Grüsse
Patrick
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 17:26:40
Reinhard
Hallo Patrick,
kann ich nicht nachvollziehen, bei mir läuft der Code promlemlos.
Bau doch mal ein
msgbox ws.name
vor die kritische Stelle, dann weisst du in welcher tabelle das passiert.
Dann lass mal die folgende

Sub laufen, (Tabelle1 mit deionem Tabnamen austauschen), passiert da das gleiche? Was wird angezeigt?

Sub test2()
Dim strAnalyse As String
MsgBox TypeName(Worksheets("Tabelle1").Cells(1, 2).Value)
strAnalyse = Worksheets("Tabelle1").Cells(1, 2)
End Sub

Gruß
Reinhard
Anzeige
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 19:08:26
Patrick
Hallo Reinhard
Also es passiert in jeder Kopie die angelegt wird. Zum Test werden die Tabellenblätter 240001 und 240002 angelegt. Das Makro "test2" liefert: Double!
Interessant ist, dass das Original-Makro (Betrag auf Zellen verteilen) immer im letzten Tabellenblatt korrekt ausgeführt wird (hier also in 240002). Nicht aber in dem anderen (240001).
Ohje, wird immer komplizierter, was? ;-)
Grüsse
Patrick
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 19:35:45
Ceyser
Hi Patrick,
probier mal das hier:

      
Sub zerlegen()
Dim wks As Worksheet
Dim zaehl As Long
Dim sAnalyse As String, sResult As String
Dim iLetter As Integer
For Each wks In ThisWorkbook.Sheets
With wks
    
If .Name <> "Start" And .Name <> "Import" Then
        sAnalyse = .Cells(1, 2)
        sResult = ""
        
For iLetter = 1 To Len(sAnalyse)
            sResult = Mid(sAnalyse, iLetter, 1) & sResult
        
Next
        .Cells(1, 1) = sResult
        
For zaehl = 1 To Len(.Cells(1, 1))
            .Cells(2, zaehl) = Mid(.Cells(1, 1), zaehl, 1)
        
Next
    
End If
End With
Next wks
End Sub 


Gruß
CS
Anzeige
AW: Makro in unbekannter Anzahl Tabellen ausführen
27.04.2005 20:46:06
Patrick
Hallo Ceyser
Supi, das funzt! Mir ist zwar nicht klar warum die anderen nicht funktionierten, aber jetzt geht es einwandfrei! Ein grosses Dankeschön an alle für Eure Hilfe!
Grüsse
Patrick

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige