La fonction SI en VBA ! Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
Avatar du membre
Mohsin.stat
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 14 décembre 2016
Version d'Excel : 2016 FR

Message par Mohsin.stat » 16 décembre 2016, 20:45

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 !
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'095
Appréciations reçues : 902
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 16 décembre 2016, 20:54

If Sheets.Count < 6 then exit sub

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Mohsin.stat
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 14 décembre 2016
Version d'Excel : 2016 FR

Message par Mohsin.stat » 16 décembre 2016, 20:57

Steelson a écrit :
If Sheets.Count < 6 then exit sub
Merci Steelson ! je vais essayer le code.
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 16 décembre 2016, 21:02

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
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Avatar du membre
Mohsin.stat
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 14 décembre 2016
Version d'Excel : 2016 FR

Message par Mohsin.stat » 16 décembre 2016, 21:42

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 !
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message