Clever-Excel-Forum

Normale Version: Excel Macro durch Sheets springen und Informationen sammeln?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
 
Ich bin neu hier und vielleicht kann mir hier wer helfen, hänge hier an einem Macro fest..
 
Die Idee hinter dem Macro ist, der anfangs sheet ist „COLLECTION“ dieser heißt fest so und der letzte ist „LAST“ dieser heißt auch fest so, alles dazwischen ändert sich immer.
 
Das Macro sollte zwischen den Sheets wechseln und ein paar informationen sammeln und diese auf „COLLECTION“ zusammen führen. Das klappt schon soweit.
Jetzt würde ich gerne noch den Anfang ändern, aktuell werden die ergebnisse auf „A20“ zusammen getragen, aber ich fänd es auf „C20“ besser, weiß aber nicht wie ich die Spalte geändert bekomme mit der Reihe.
Weiterhin wäre es cool wenn danach eine verknüpfung jeweils erstellt würde um später ähnlich wie ein Register zwischen den taps hin und her zu wechseln..
 
Hoffe das ist verständlich,
 
würde mich sehr freuen, anbei mal noch der Code..

Code:
[/size]
[size=1] [/size]
[size=1]Dim wkst As Worksheet[/size]
[size=1]Dim row As Long[/size]
[size=1]row = 20[/size]
[size=1] [/size]
[size=1]For Each wkst In ActiveWorkbook.Worksheets[/size]
[size=1] [/size]
[size=1]   If wkst.Name <> "COLLECTION" Then[/size]
[size=1]      Worksheets("COLLECTION").Cells(row, 1) = wkst.Range("D9").Value & " - " & wkst.Range("D10").Value & " - " & wkst.Range("G9").Value & " - " & wkst.Range("G10").Value & " - " & wkst.Range("D12").Value & " - " & wkst.Range("D11").Value[/size]
[size=1] [/size]
[size=1]      row = row + 2[/size]
[size=1]    [/size]
[size=1]   End If[/size]
[size=1]Next[/size]
[size=1] [/size]
[size=1]
Hallo


Zitat:aber ich fänd es auf „C20“ besser
Änder die 1 in 3 um.

Worksheets("COLLECTION").Cells(row, 1)


Zitat:Weiterhin wäre es cool wenn danach eine verknüpfung jeweils erstellt würde um später ähnlich wie ein Register zwischen den taps hin und her zu wechseln..
Wie meinst du das?
So evtl.
Code:
Sub Button1_Click()
'
'
Dim wkst As Worksheet
Dim row As Long
row = 20
For Each wkst In ActiveWorkbook.Worksheets
   If wkst.Name <> "COLLECTION" Then
      Worksheets("COLLECTION").Cells(row, 3) = wkst.Range("D9").Value & " - " & wkst.Range("D10").Value & " - " & wkst.Range("G9").Value & " - " & wkst.Range("G10").Value & " - " & wkst.Range("D12").Value & " - " & wkst.Range("D11").Value
      ActiveSheet.Hyperlinks.Add Anchor:=Cells(row, 4), Address:="", SubAddress:="'" & wkst.Name & "'!A1", TextToDisplay:=wkst.Name
      row = row + 2
   End If
Next
'
End Sub

Gruß Elex
Oh mein Gott, Elex.. das ist ja der Hammer.. :)

Das funktioniert ja tatsächlich super, okay auf das ".Cells(row, 3)" hätte ich auch können, kommen.. will jetzt nicht sagen typisch.. (weiblich) :D

Das mit den Hyperlinks funktioniert auch super, hab jetzt noch nicht ganz verstanden wie es funktioniert, aber werd es mir Definitiv anschauen.
Funktionieren tut es, aber er nimmt als "Namen" für den Hyperlink den "Namen" des "Tap" fände es gut wenn die ganzen Infos die er Sammelt als Hyperlink markiert wären und nicht nur der Schluss :)

Auf jeden fall Super, ich bin dir echt Dankbar! :)

LG Lizzz

Code:
ActiveSheet.Hyperlinks.Add Anchor:=Cells(row, 3), Address:="", SubAddress:="'" & wkst.Name & "'!A1", TextToDisplay:=wkst.Range("D9").Value & " - " & wkst.Range("D10").Value & " - " & wkst.Range("G9").Value & " - " & wkst.Range("G10").Value & " - " & wkst.Range("D12").Value & " - " & wkst.Range("D11").Value

So funktioniert es natürlich schön, war ja mal wieder klar. :)

Das einzige was jetzt noch zu meinem Glück fehlt ist das er das Tap "LAST" aus lässt.. da dort sachen stehen die damit nichts zutun haben.. :)
Code:
If wkst.Name <> "COLLECTION" And wkst.Name <> "LAST" Then
Viele Dank Ralf_b, das funktioniert super.. bin immer wieder froh etwas gelernt zu haben. J
Manchmal frage ich mich echt woher man (frau) dieses ganze wissen nimmt. J
 
Hatte schon mal überlegt ob es sich nicht lohnen würde ein VBA Fernstudium dran zu hängen, da es mir schon Spass macht.