• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Cellen op meerdere tabbladen aanpassen via VBA

Status
Niet open voor verdere reacties.

evstraalen

Gebruiker
Lid geworden
23 apr 2007
Berichten
13
Hallo allemaal,

Ik heb een klein probleempje waarvan ik hoop dat iemand me erbij kan helpen. Heb al behoorlijk wat topics bekeken op het forum maar nog niet de oplossing gevonden.

Ik heb een bestand met een variabel aantal tabbladen voor afzonderlijke projecten (er komen nieuwe tabbladen bij voor nieuwe projecten en projecten die klaar zijn kunnen weer verwijderd worden). Zie bijgevoegd voorbeeldbestand. In cel B3 komt op ieder tabblad een waarde te staan welke ik in de uiteindelijke versie via een vert.zoeken functie uit een ander bestand haal.
Voor ieder tabblad wil ik die waarde vervolgens in het veld bij de week zetten waarin het thuishoort (in voorbeeldbestand eerstvolgende week in cel B9). Daar deze cel iedere week een volgende cel in kolom B is wil ik deze celnaam opgeven via een inputbox.

Ik heb al een klein stukje code in elkaar geknutseld maar loop hier mee vast.
Op mijn eerste werkblad geeft de code idd de waarde door aan de cel die ik kies via mijn inputbox maar op de 2 volgende tabbladen niet.


Code:
Sub Test()

Dim Doel As String
Dim Blad As Worksheet


Doel = InputBox("Voer celnaam in")

For Each Blad In Worksheets

Range(Doel).Value = Range("B3").Value

Next

Ik hoop dat iemand mij kan helpen de code werkend te krijgen.

Alvast bedankt voor de moeite,

Eric
 

Bijlagen

Hallo

Ik heb nog een stukje code gevonden waarmee je de tabbladen in een Array zet.
Hiermee worden alle opgegeven tabbladen afgegaan naar cel B3.
Ik hoop dat het dit is wat je bedoeld.

Met vr gr
Jack
Code:
Sub Testje()

    For Each sh In Worksheets(Array(1, 2, 3))
        sh.Range("B3").Value = Range(Doel).Value 
    Next sh

End Sub
Of
Code:
Sub Testje()

    For Each v In Array(1, 2, 3)
        Sheets(v).Range("B3").Value = Range(Doel).Value 
    Next

End Sub
 
Laatst bewerkt:
Hallo Jack,

Bedankt voor je snelle reactie.
Mijn probleem met een Array is denk ik dat ik hierbij de Array handmatig moet aanpassen als er tabbladen bij komen voor nieuwe projecten. En het bestand waar ik het uiteindelijk in ga toepassen zal minstens 60 tabbladen voor verschillende projecten bevatten.
Is er een manier om te voorkomen dat ik alle 60 tabbladen in het Array zal moeten benoemen?

M.vr.gr.

Eric
 
Hallo Jack,

Is er een manier om te voorkomen dat ik alle 60 tabbladen in het Array zal moeten benoemen?

M.vr.gr.

Eric

Zo iets werkt ook, deze doorloopt alle bestaande werkbladen.
Code:
Sub Test()
Dim i           As Integer

    For i = 1 To Sheets.Count
        Sheets(i).Range("B3").Value = Range("Doel").Value
    Next

End Sub
 
Laatst bewerkt:
Code:
Sub Test1()
    For i = 1 To Sheets.Count
        Sheets(i).Cells(Rows.Count, 2).End(xlUp).Offset(1).Value = Sheets(i).[B3].Value
    Next
End Sub
 
Hallo Jack en Rudi,

Met jullie hulp is het gelukt en heb ik nu onderstaande code waarmee mijn doel wordt bereikt:

Sub Test1()
Code:
Dim i As Integer
Dim Doel As String

Doel = InputBox("Voer celnaam in")

    For i = 1 To Sheets.Count
        Sheets(i).Range(Doel).Value = Sheets(i).[B3].Value
    Next
End Sub

Ik blijf wel dmv een inputbox mijn doelcel ingeven omdat ik de mogelijkheid moet hebben 1 of meerdere cellen over te slaan. De gegevens die ik inlees zijn namelijk niet altijd iedere week beschikbaar. Als ik dan Excel automatisch de eerstvolgende lege cel laat vullen volgens de oplossing van Rudi (welke trouwens wel heel mooi werkt) dan kom ik scheef te lopen met mijn gegevens.

Mag ik jullie heel hartelijk danken voor jullie hulp :thumb:

Groeten,

Eric

P.S. ik zet mijn vraag op opgelost
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan