Résolu - VBA (erreur s/Boucles) - 1.ColorieTs Wks sf liste et 2. C/c ne revient pas sur Sheets(i)

zebanx

XLDnaute Accro
Bonjour,

Pourriez-vous svp m'aider sur deux erreurs de codes sur des boucles :

Module 1 : Sur une boucle 1 to worksheets.count, colorier des fichiers qui ne sont pas dans une liste d'exception.
>> J'ai vu, sauf erreur, qu'on pouvait passer par <> "Nom 1" and <> "Nom 2" mais je souhaiterai savoir s'il était possible, par un array (?), de figer une liste (liste = array ("Nom1", "Nom2", ...) avec les noms de ces feuilles et de coder par <> Liste

Module 2 : On m'envoie des onglets bruts (jean...) que je dois mettre en forme avant de les compiler.
J'utilise 2 macros dont l'une fait appel à l'autre pour la mise en forme de chaque onglet.
>> La présentation des premières colonnes serait à prendre en ligne 1 sur le fichier "RECAP" qui ne doit pas faire partie de la boucle... mais la boucle s'arrête en revenant vers la sheets(i) et je ne comprend pas pourquoi...

Vous en remerciant par avance, cdlt
thierry
 

Pièces jointes

  • VBA_boucle_MEF.zip
    17.2 KB · Affichages: 23

youky(BJ)

XLDnaute Barbatruc
Salut bien,
J'ai tout mis en 1 seul module (module1)
J'ai simplifié une macro et surtout j'ai ajouté en tête de module .......Public i as integer
Ceci fait que la variable i ne s'efface pas entre les macros elle est devenu public
Bruno
 

Pièces jointes

  • Copie de VBA_boucle_MEF.xls
    70 KB · Affichages: 29

youky(BJ)

XLDnaute Barbatruc
Yes,
tu effaces tout ce qui est en module1 et recopie comme cela
VB:
Sub Couleurs()
Dim i As Byte
Dim Liste As Variant
'Liste = Array("recap", "retraité") ' Liste des exceptions pour boucle
    For i = 1 To Worksheets.Count
        If Sheets(i).Name <> "recap" And Sheets(i).Name <> "retraité" Then
        Sheets(i).Select
        ActiveWorkbook.Sheets(i).Tab.ColorIndex = 41
        End If
    Next i
End Sub
Sub MEFonglets(i)
'
' Macro1 Macro
' Macro enregistrée le 02/06/2017 par thierry
' simplifié par Youky
    Rows(1).Insert Shift:=xlDown
    Columns(1).Insert Shift:=xlToRight
    Cells.Interior.ColorIndex = 2
    Range("G5").Select
    Sheets("recap").Range("A1:G1").Copy
    Sheets(i).Range("A1").PasteSpecial
    Application.CutCopyMode = False
     Range("A2").FormulaR1C1 = "=+R[-1]C[6]"
    [A2] = [A2].Value
    Range("B2").Select
End Sub

Sub MEFwks()
Dim i As Byte
On Error GoTo FIN
    For i = 1 To Worksheets.Count
        If Sheets(i).Name <> "recap" And Sheets(i).Name <> "retraité" Then
        Sheets(i).Select
        Call MEFonglets(i)
        End If
    Next i
FIN:
End Sub
Function nbfeuilles() As Integer
nbfeuilles = ThisWorkbook.Worksheets.Count
End Function

Bruno
 

Discussions similaires

Statistiques des forums

Discussions
312 237
Messages
2 086 489
Membres
103 234
dernier inscrit
matteo75654548