Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/03/2010, 16h03   #1
 
Francois BERANARD
Inscription : mars 2010
Messages : 32
Détails du profil
Informations personnelles :
Nom : Francois BERANARD

Informations forums :
Inscription : mars 2010
Messages : 32
Points : -3
Points : -3
Par défaut Sélection de feuilles par Macro

Bonjour,
Dans Excel je voudrais sélectionner avec une macro certain onglets d'un classeur en même temps, suivant la liste de noms qui est variable. Les noms sont stockés dans la feuille en Q1 Q2 etc.
Pour ensuite lancer une impression.
Merci d’avance

Dernière modification par Soifranc ; 09/03/2010 à 16h44.
Soifranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 18h21   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 7 906
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 7 906
Points : 13 687
Points : 13 687
Envoyer un message via Skype™ à Pierre Fauconnier
Bonjour

Pour ajouter un onglet à ceux déjà sélectionnés, tu peux utiliser
Code :
worksheets("MonOnglet").select False
Ne pas oublier de dégrouper après, ce que tu pourras faire en sélectionnant une seule feuille, sans False...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 22h20   #3
 
Francois BERANARD
Inscription : mars 2010
Messages : 32
Détails du profil
Informations personnelles :
Nom : Francois BERANARD

Informations forums :
Inscription : mars 2010
Messages : 32
Points : -3
Points : -3
Je voulais selectionner les onglets avec les valeurs inscrite dans Q1 - Q2 - Q3 etc
avec cette ligne de commande j'ai une erreur
Code :
If Range("Q3").Value <> "" Then Worksheets(Range("Q3")).Select False

Dernière modification par Pierre Fauconnier ; 09/03/2010 à 22h33. Motif: Suppression de la citation inutile + balises de code
Soifranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 22h36   #4
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 7 906
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 7 906
Points : 13 687
Points : 13 687
Envoyer un message via Skype™ à Pierre Fauconnier
C'est normal.

Tu as intérêt à travailler avec une variable qui pointe vers ta plage de cellules, car Range("q3") se réfère à la feuille active, qui est modifiée dans ton code lors du Select

Code :
1
2
3
4
5
Dim Cellule As Range
 
For Each Cellule In Worksheets("mafeuille").Range("Q1:Q5")
    Worksheets(Cellule.Value).Select False
Next Cellule
en adaptant et en vérifiant ce qui doit l'être (existence de la feuille, cellule non vide, ...)
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 07h20   #5
 
Francois BERANARD
Inscription : mars 2010
Messages : 32
Détails du profil
Informations personnelles :
Nom : Francois BERANARD

Informations forums :
Inscription : mars 2010
Messages : 32
Points : -3
Points : -3
Merci pour cette réponse
Ce code fonctionne très bien si la plage Q1:Q5 est compléte, mais génére une erreur 9 si une cellule de la plage est vide

Dernière modification par Pierre Fauconnier ; 10/03/2010 à 09h55. Motif: Inutile de reprendre la réponse en citation.
Soifranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 10h02   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 7 906
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 7 906
Points : 13 687
Points : 13 687
Envoyer un message via Skype™ à Pierre Fauconnier
Citation:
Envoyé par Pierre Fauconnier Voir le message
...en adaptant et en vérifiant ce qui doit l'être (existence de la feuille, cellule non vide, ...)
Tu avais toi-même mis une condition dans ton message d'origine, j'ai donc jugé inutile de te la remettre.

Tu dois donc adapter la plage Q1:Q5 en fonction de ton classeur, tester qu'une cellule est remplie et tester également que la feuille existe.

Comme il n'existe pas de fonction intrinsèque du VBA Excel permettant de tester l'existence d'une feuille, je propose de passer par une fonction
Code :
1
2
3
4
5
6
7
8
9
Function FeuilleExiste(NomFeuille As String) As Boolean
  Dim sh As Object
  For Each sh In Sheets
    If sh.Name = NomFeuille Then
      FeuilleExiste = True
      Exit For
    End If
  Next sh
End Function
Le test via cette fonction te dispense évidemment du test de la cellule vide
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 02h53.


 
 
 
 
Partenaires

Hébergement Web