Commandbutton voor actie op ander worksheet

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Hoi,

Ik zou een actie op een ander worksheet willen activeren door op een commandbutton te klikken.
Ik leerde reeds dat ik dan best met de CALL functie kan werken.

Ik heb voor elke maand een worksheet en een soort van startpagina. Op deze startpagina worden begindata gedefinieerd.
Door op de commandbutton te klikken, zou ik graag hebben dat er een aantal berekeningen gebeuren op de worksheets met de maanden, maar ook dat de kolombreedtes zich aanpassen naar gelang de dag in de maand.


Code:
Private Sub CommandButton1_Click()
    Call ZetJanuari
End Sub



Sub ZetJanuari()

For Each C In Worksheets("Januari").Range("B2:AF37")
 If C.Value = "za" Then
    Columns(C.Column).ColumnWidth = 2
 End If
Next C

    
End Sub


Deze code zorgt er inderdaad voor dat de kolommen naar width 2 gezet worden, maar op de worksheet waar de commandbutton zich op bevindt.
Ik zal dus in dit stukje moeten toevoegen dat het om een andere worksheet gaat, maar dat krijg ik maar niet door elkaar.

Code:
 Columns(C.Column).ColumnWidth = 2

Het combineren van de codes die ik reeds vond online, brengen me nergens.


Kan iemand me hier al mee verder helpen?

Bedankt!
 
Doe het eens zo:
Code:
With Worksheets("Januari")
    For Each c In .Range("B2:AF37")
        If c.Value = "za" Then
            .Columns(c.Column).ColumnWidth = 2
         End If
    Next c
End With
 
Laatst bewerkt:
Werkt perfect!
Erg bedankt.

Misschien bijkomende vraag:
ik wil dit uiteraard voor alle maanden in het jaar.


Ik probeerde:

Code:
Sub ZetJanuari()

With Worksheets(Array("Januari", "Februari", "Maart"))
    For Each c In .Range("B2:AG41")
     If c.Value = "za" Then
        .Columns(c.Column).ColumnWidth = 2
     End If
    Next c
End With
    
End Sub

maar dan loopt hij vast, met in de debug deze highlight:

Code:
For Each c In .Range("B2:AG41")

Ik kan uiteraard het stukje voor elke maand herhalen, maar dat lijkt me zo zonde?
 
Dan kan dat zo:
Code:
For Each sht In Worksheets(Array("Januari", "Februari", "Maart"))
    For Each c In sht.Range("B2:AG41")
        If c.Value = "za" Then
            sht.Columns(c.Column).ColumnWidth = 2
        End If
    Next c
Next sht
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan