Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 choix conditionnel de feuils

SDHABARKA

XLDnaute Nouveau
bonjour!
j'ai un fichier dans lequel le voudrais ajouter automatiquement des contenus différents à l'ouverture du classeurs.
en effet, je voudrais à l'ouverture du classeur que la macro s'exécute et qu'elle renseigne les feuils.
avec la Boucle For Each...Next pour parcourir les feuils avec la structure conditionnelle If
si le nom de la feuil est "feuil1", alors on exécuter un certains nombre d'instructions,
sinon si ce n'est pas le cas on exécute d'autres instructions.
Mais ça bloc dans le Elseif

voir fichier joint
 

Pièces jointes

  • Echantillon - Copie.xlsm
    25.3 KB · Affichages: 5
Solution
Re,
En un petit peu mieux optimisé.
VB:
Public Sub Xtab()
Dim xsh As Worksheet
For Each xsh In Worksheets
    If xsh.Name = "Feuil1" Then
        MiseEnForme "Feuil1", "B3:F3", "A5:F5"  ' Mise en forme standard
    Else
        MiseEnForme xsh.Name, "B3:J3", "A5:J5"  ' Mise en forme standard
        ' Plus ceci si ce n'est pas la feuille 1
        T = Array("Nom", "Montant payé FCFA", "Article", "Quantité")
        Sheets(xsh.Name).Range("G5").Resize(1, 4).Value = T
    End If
Next xsh
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re bonsoir,
Toutes les feuilles ont la même mise en forme à part 4 lignes, donc inutile de les dupliquer.
Un essai en PJ où la mise en forme est la même pour toutes les feuilles plus quelques lignes si ce n'est pas la feuille1.
Normalement ça devrait faire ce que vous voulez.
VB:
Public Sub Xtab()
Dim xsh As Worksheet
For Each xsh In Worksheets
    If xsh.Name = "Feuil1" Then
        MiseEnForme "Feuil1"    ' Mise en forme standard
    Else
        MiseEnForme xsh.Name    ' Mise en forme standard
        ' Plus ceci si ce n'est pas la feuille 1
        Sheets(xsh.Name).Range("G5").Value = "Date"
        Sheets(xsh.Name).Range("H5").Value = "Montant payé FCFA"
        Sheets(xsh.Name).Range("I5").Value = "Article"
        Sheets(xsh.Name).Range("J5").Value = "Quantité"
    End If
Next xsh
End Sub
 

Pièces jointes

  • Echantillon - Copie (1).xlsm
    25.5 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
En un petit peu mieux optimisé.
VB:
Public Sub Xtab()
Dim xsh As Worksheet
For Each xsh In Worksheets
    If xsh.Name = "Feuil1" Then
        MiseEnForme "Feuil1", "B3:F3", "A5:F5"  ' Mise en forme standard
    Else
        MiseEnForme xsh.Name, "B3:J3", "A5:J5"  ' Mise en forme standard
        ' Plus ceci si ce n'est pas la feuille 1
        T = Array("Nom", "Montant payé FCFA", "Article", "Quantité")
        Sheets(xsh.Name).Range("G5").Resize(1, 4).Value = T
    End If
Next xsh
End Sub
 

Pièces jointes

  • Echantillon - Copie (V2).xlsm
    25.5 KB · Affichages: 6

SDHABARKA

XLDnaute Nouveau
ok merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…