Macro Sélectionner onglets pairs ou impairs
Résolu/Fermé
Philgood.001
-
Modifié le 1 avril 2017 à 10:21
patty5046 Messages postés 46 Date d'inscription lundi 8 février 2016 Statut Membre Dernière intervention 15 septembre 2023 - 12 mai 2017 à 11:06
patty5046 Messages postés 46 Date d'inscription lundi 8 février 2016 Statut Membre Dernière intervention 15 septembre 2023 - 12 mai 2017 à 11:06
A voir également:
- Macro Sélectionner onglets pairs ou impairs
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Restaurer onglets chrome - Guide
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Sélectionner texte pdf - Guide
10 réponses
patty5046
Messages postés
46
Date d'inscription
lundi 8 février 2016
Statut
Membre
Dernière intervention
15 septembre 2023
5
1 avril 2017 à 11:19
1 avril 2017 à 11:19
Bonjour
J'ai bien ce code mais la dernière feuille est toujours sélectionnée...Donc peut-être ajouter une feuille bidon et ne pas traiter la dernière ?? Si qqn a mieux...
J'ai bien ce code mais la dernière feuille est toujours sélectionnée...Donc peut-être ajouter une feuille bidon et ne pas traiter la dernière ?? Si qqn a mieux...
Sub SelectFeuillImpaire() Dim Sht As Worksheet For Each Sht In ActiveWorkbook.Sheets 'tout déselectionner Sht.Select Replace:=True Next Sheets(Sheets.Count).Select Replace:=True ind = 1 For Each Sht In ActiveWorkbook.Sheets If ind Mod 2 <> 0 Then 'si impair Sht.Select Replace:=False End If ind = ind + 1 Next Sht End Sub Sub SelectFeuillPaire() Dim Sht As Worksheet For Each Sht In ActiveWorkbook.Sheets 'tout déselectionner Sht.Select Replace:=True Next Sheets(Sheets.Count).Select Replace:=True ind = 1 For Each Sht In ActiveWorkbook.Sheets If ind Mod 2 = 0 Then 'si pair Sht.Select Replace:=False End If ind = ind + 1 Next Sht End Sub
patty5046
Messages postés
46
Date d'inscription
lundi 8 février 2016
Statut
Membre
Dernière intervention
15 septembre 2023
5
2 avril 2017 à 17:40
2 avril 2017 à 17:40
Bonsoir
peut-être pas très élégant
rajouter test ind pour tes 2 sélections
et
Bon courage
peut-être pas très élégant
rajouter test ind pour tes 2 sélections
If ind Mod 2 <> 0 And ind > 3 Then 'si impair
et
If ind Mod 2 = 0 And ind > 3 Then 'si pair
Bon courage
Philgood.001
Messages postés
6
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
2 mai 2018
3 avril 2017 à 08:09
3 avril 2017 à 08:09
Excellent Patty5046!!!!
Tu as tout bon depuis le début!!!
C'est exactement ce que je voulais.
Me reste plus qu'à trouver le bouton qui sélectionnera tous les onglets depuis le 4è jusqu'au dernier.
Dès que c'est fini je reviens vers toi pour te l'afficher.
En attendant, voilà ce que donne tes formules :
Merci encore. Bonne journée. A bientôt!
Tu as tout bon depuis le début!!!
C'est exactement ce que je voulais.
Me reste plus qu'à trouver le bouton qui sélectionnera tous les onglets depuis le 4è jusqu'au dernier.
Dès que c'est fini je reviens vers toi pour te l'afficher.
En attendant, voilà ce que donne tes formules :
Sub SELECT_ONGLETS_IMPAIRS()
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Sheets 'tout déselectionner
Sht.Select Replace:=True
Next
Sheets(Sheets.Count).Select Replace:=True
ind = 1
For Each Sht In ActiveWorkbook.Sheets
If ind Mod 2 <> 0 And ind > 3 Then 'si impair
Sht.Select Replace:=False
End If
ind = ind + 1
Next Sht
End Sub
Sub SELECT_ONGLETS_PAIRS()
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Sheets 'tout déselectionner
Sht.Select Replace:=True
Next
Sheets(Sheets.Count).Select Replace:=True
ind = 1
For Each Sht In ActiveWorkbook.Sheets
If ind Mod 2 = 0 And ind > 3 Then 'si pair
Sht.Select Replace:=False
End If
ind = ind + 1
Sheets(Sheets.Count - 1).Activate
Next Sht
End Sub
Merci encore. Bonne journée. A bientôt!
patty5046
Messages postés
46
Date d'inscription
lundi 8 février 2016
Statut
Membre
Dernière intervention
15 septembre 2023
5
3 avril 2017 à 17:44
3 avril 2017 à 17:44
Bonsoir
Voici ta dernière recherche, à partir de la feuille 4
Voici ta dernière recherche, à partir de la feuille 4
Sub SelectDepuisQuatre() Dim Sht As Worksheet For Each Sht In ActiveWorkbook.Sheets 'tout déselectionner Sht.Select Replace:=True Next Ind = 0 For Each Sht In ActiveWorkbook.Sheets 'tout selectionner depuis 4 Ind = Ind + 1 If Ind > 3 Then Sht.Select Replace:=False End If Next End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
patty5046
Messages postés
46
Date d'inscription
lundi 8 février 2016
Statut
Membre
Dernière intervention
15 septembre 2023
5
9 avril 2017 à 10:00
9 avril 2017 à 10:00
Bonjour
Ravie d'avoir été utile et merci pour tous ces compliments...
N'oublie pas de marquer le sujet comme résolu.
Bon dimanche
Ravie d'avoir été utile et merci pour tous ces compliments...
N'oublie pas de marquer le sujet comme résolu.
Bon dimanche
Philgood.001
Messages postés
6
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
2 mai 2018
9 avril 2017 à 18:37
9 avril 2017 à 18:37
Rebonjour Patty5046,
Voici encore mieux, instantané :
"Bonjour,
Je vous propose le code VBA suivant (pour sélectionner les onglets pairs au dessus de 3):
Pour les onglets impairs changer la condition pour IF i Mod 2 = 1 then.
Pour tous les onglets, enlever le premier IF (IF i Mod 2 = 0 then).
Voilà,
Francis"
Francis du CFO masqué!!!
Bravo à lui, excellent code!!!
Voici encore mieux, instantané :
"Bonjour,
Je vous propose le code VBA suivant (pour sélectionner les onglets pairs au dessus de 3):
Sub SelectPair()
Dim i As Integer, iCount As Integer
Dim strSheetSelected() As String
For i = 4 To Sheets.Count
If i Mod 2 = 0 Then ' C'est un index pair
If Sheets(i).Visible = xlSheetVisible Then
ReDim Preserve strSheetSelected(iCount)
strSheetSelected(iCount) = Sheets(i).Name
iCount = iCount + 1
End If
End If
Next i
Sheets(strSheetSelected).Select
End Sub
Pour les onglets impairs changer la condition pour IF i Mod 2 = 1 then.
Pour tous les onglets, enlever le premier IF (IF i Mod 2 = 0 then).
Voilà,
Francis"
Francis du CFO masqué!!!
Bravo à lui, excellent code!!!
Bonjour Patty5046,
Voici un code complémentaire à mes demandes précédentes :
Il s'agit là de masquage/démasquage d'onglets pairs ou impairs :
Code fourni par Francis du CFO masqué!
Merci à toi pour toutes tes propositions.
A très bientôt.
Philgood.001.
Voici un code complémentaire à mes demandes précédentes :
Il s'agit là de masquage/démasquage d'onglets pairs ou impairs :
Sub MASQUER_PAIRS()
Dim i As Integer
For i = 5 To Sheets.Count
If i Mod 2 = 0 Then ' C'est un index pair
Sheets(i).Visible = xlSheetHidden
End If
Next i
End Sub
Sub MASQUER_IMPAIRS()
Dim i As Integer
For i = 6 To Sheets.Count
If i Mod 2 = 1 Then ' C'est un index impair
Sheets(i).Visible = xlSheetHidden
End If
Next i
End Sub
Sub TOUT_DEMASQUER()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets(i).Visible = xlSheetVisible
Next i
End Sub
Code fourni par Francis du CFO masqué!
Merci à toi pour toutes tes propositions.
A très bientôt.
Philgood.001.
Philgood.001
Messages postés
6
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
2 mai 2018
Modifié le 11 mai 2017 à 19:04
Modifié le 11 mai 2017 à 19:04
Re-bonjour Patty 5046,
Avant de clore le sujet, j'ai une dernière requête toujours sur ce classeur :
Sur chaque onglet, j’ai un bouton “Imprimer” (qui avant d’imprimer, cache certaines colonnes puis imprime puis ré-affiche lesdites colonnes).
Du coup j’ai le même code sur 24 onglets (pour l’instant…).
Mais si je veux modifier le code par ex., je dois le faire pour chaque onglet, et ce 24 fois!!!
Y-a-t-il donc une solution qui permette de centraliser la formule d’impression quelque part et de ne créer que des renvois standardisés sur chaque onglet vers la formule générale d’impression?
J’avais pensé mettre la formule dans “ThisWorkBook” et mettre un renvoi dans chaque “Sheets”.
Qu’en penses-tu? Par contre pour le code je ne sais pas faire…
Merci encore à toi.
A bientôt.
Philgood.001.
Avant de clore le sujet, j'ai une dernière requête toujours sur ce classeur :
Sur chaque onglet, j’ai un bouton “Imprimer” (qui avant d’imprimer, cache certaines colonnes puis imprime puis ré-affiche lesdites colonnes).
Du coup j’ai le même code sur 24 onglets (pour l’instant…).
Mais si je veux modifier le code par ex., je dois le faire pour chaque onglet, et ce 24 fois!!!
Y-a-t-il donc une solution qui permette de centraliser la formule d’impression quelque part et de ne créer que des renvois standardisés sur chaque onglet vers la formule générale d’impression?
J’avais pensé mettre la formule dans “ThisWorkBook” et mettre un renvoi dans chaque “Sheets”.
Qu’en penses-tu? Par contre pour le code je ne sais pas faire…
Merci encore à toi.
A bientôt.
Philgood.001.
Philgood.001
Messages postés
6
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
2 mai 2018
11 mai 2017 à 22:56
11 mai 2017 à 22:56
Re-bonsoir Patty 5046,
Je tiens à préciser que je sais le faire avec un bouton "Imprimer" en mode "Formulaire" en mettant le code dans un Module VBA, mais que pour des raisons esthétiques et pratiques, je préfère utiliser un bouton “ActiveX” dont je pourrai personnaliser la couleur.
Et dans ce cas, ça ne fonctionne pas.
Si tu as une idée...
Merci à toi.
Philgood..001.
Je tiens à préciser que je sais le faire avec un bouton "Imprimer" en mode "Formulaire" en mettant le code dans un Module VBA, mais que pour des raisons esthétiques et pratiques, je préfère utiliser un bouton “ActiveX” dont je pourrai personnaliser la couleur.
Et dans ce cas, ça ne fonctionne pas.
Si tu as une idée...
Merci à toi.
Philgood..001.
patty5046
Messages postés
46
Date d'inscription
lundi 8 février 2016
Statut
Membre
Dernière intervention
15 septembre 2023
5
12 mai 2017 à 11:06
12 mai 2017 à 11:06
Bonjour
Si tu peux envoyer ton fichier, car je suis loin de chez moi et je ne veux pas recréer un fichier complet pour tes tests (trop occupée). Sinon, quelqu'un pourra peut-être te répondre, je te le souhaite.
Bon courage.
Si tu peux envoyer ton fichier, car je suis loin de chez moi et je ne veux pas recréer un fichier complet pour tes tests (trop occupée). Sinon, quelqu'un pourra peut-être te répondre, je te le souhaite.
Bon courage.
Modifié le 2 avril 2017 à 14:18
Merci pour ta réponse! Elle est presque parfaite!
En effet comme tu dis, la formule sélectionne systématiquement le dernier onglet, en mode pair comme impair. J'ai trouvé la parade. Voici le résultat :
Par contre j'ai un soucis :
Comme précisé dans mon post initial, je voudrais que la sélection commence à partir du 4è onglet, mais j'ai eu beau tenter plusieurs tentatives, impossible de trouver la bonne formule.
Si tu as une idée...
Merci encore à toi.