La fonction SI en VBA

Salut les amis !

J'ai créé une macro qui me permet de copier des données depuis le premier onglet et les coller dans la première ligne du dernier onglet, ensuite, copier des données depuis le deuxième onglet et les coller dans la deuxième ligne du dernier onglet et ainsi de suite .. Bref, les dernier onglet récapitule les données de tous les autre onglets.

Sub Somme1Jour() 
Sheets(1).Select
Range("d24:g24").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("c6:f6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 Range("B6").Select
End Sub

Néanmoins, j'ai une petite condition un peu bizarre ! Que je souhaite pouvoir la réaliser (avec votre aide biensûr) en code VBA !

Ma condition est la suivante : "Mon classeur doit contenir 5 onglets ou plus",

C'est-à-dire : Si mon classeur contient 5 onglet ou plus alors exécute ma macro sinon ne rien fait.

J'espère que vous pourriez m'aider et je vous adresse un grand merci !

Bonne soirée !

If Sheets.Count < 6 then exit sub
Steelson a écrit :
If Sheets.Count < 6 then exit sub

Merci Steelson ! je vais essayer le code.

Bonsoir,

Testes pour voir si ça te convient :

Sub Somme1Jour()

    Dim I As Integer

    If Worksheets.Count < 5 Then Exit Sub

    For I = 1 To Sheets.Count - 1

        Sheets(Sheets.Count).Range("C" & I & ":F" & I).Value = Sheets(I).Range("D24:G24").Value

    Next I

End Sub

Merci beaucoup Steelson ! Merci à vous aussi Theze !

La macro à bien fonctionner avec le code suivant:

Sub Somme1Jour()
If Sheets.Count < 5 Then Exit Sub
Sheets(2).Select
Range("d24:g24").Select
Selection.Copy
Sheets(Sheets.Count - 2).Activate
Range("c6:f6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 Range("B6").Select
End Sub

Waw ! Je suis fière de vous !

Rechercher des sujets similaires à "fonction vba"