Comment afficher une feuille en VBA
Résolu
JPIJQDAL35
-
JPIJQDAL35 -
JPIJQDAL35 -
Bonjour,
A plus de 50 ans, découvrir Excel n'est pas chose facile...a fortiori le mode VBA
La barre est sans doute un peu haute mais je tente l'essai quand même.
Mon cas:
Dans un classeur, j'ai créé plusieurs feuilles.
Dans l'une d'elle (Feuille1), j'ai une cellule (D19) dans laquelle suivant la condition implicitée dans une formule (RechercheV) j'obtiens une valeur (Valeur1,Valeur2,Valeur3).
Dans le même classeur, j'ai créé, entre autres, 3 feuilles (Feuille5 ,Feuille6 ,Feuille7) reprenant un ensemble d'informations propres à chacune de ces valeurs.
A partir de la donnée obtenue dans la cellule D19 de la feuille1 j'aimerais afficher ("à la demande" ) la feuille (Feuille5 ou Feuille6 ou Feuille7 préalablement masquée) relative à cette valeur.
Pensant qu'en VBA, les conditions fonctionnaient classiquement (=Si(D19="Valeur1";Feuille5;si(.......), J'ai essayé ce qui suit mais ça ne marche pas, ça me renvoi toujours la feuille7 (quelque soit la valeur de D19). C'était trop simple (celà doit l'être mais pas pour moi) compris).
Merci de m'aider dans ce terrible apprentissage.
Sub afficher_détails
' if range(D19).value = ("Valeur1")
Sheets("Feuille5").Select
Range("A1").Select
End
' if range(D19).value = ("valeur2") then
Sheets("Feuille6").Select
Range("A1").Select
End
' if range(D19).value = ("Valeur3") then
Sheets("Feuille7").Select
Range("A1").Select
End
End Sub
A plus de 50 ans, découvrir Excel n'est pas chose facile...a fortiori le mode VBA
La barre est sans doute un peu haute mais je tente l'essai quand même.
Mon cas:
Dans un classeur, j'ai créé plusieurs feuilles.
Dans l'une d'elle (Feuille1), j'ai une cellule (D19) dans laquelle suivant la condition implicitée dans une formule (RechercheV) j'obtiens une valeur (Valeur1,Valeur2,Valeur3).
Dans le même classeur, j'ai créé, entre autres, 3 feuilles (Feuille5 ,Feuille6 ,Feuille7) reprenant un ensemble d'informations propres à chacune de ces valeurs.
A partir de la donnée obtenue dans la cellule D19 de la feuille1 j'aimerais afficher ("à la demande" ) la feuille (Feuille5 ou Feuille6 ou Feuille7 préalablement masquée) relative à cette valeur.
Pensant qu'en VBA, les conditions fonctionnaient classiquement (=Si(D19="Valeur1";Feuille5;si(.......), J'ai essayé ce qui suit mais ça ne marche pas, ça me renvoi toujours la feuille7 (quelque soit la valeur de D19). C'était trop simple (celà doit l'être mais pas pour moi) compris).
Merci de m'aider dans ce terrible apprentissage.
Sub afficher_détails
' if range(D19).value = ("Valeur1")
Sheets("Feuille5").Select
Range("A1").Select
End
' if range(D19).value = ("valeur2") then
Sheets("Feuille6").Select
Range("A1").Select
End
' if range(D19).value = ("Valeur3") then
Sheets("Feuille7").Select
Range("A1").Select
End
End Sub
A voir également:
- Vba afficher une feuille
- Feuille de score belote excel - Forum Excel
- Bruler une feuille de laurier - Guide
- Comment supprimer une feuille sur word - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
2 réponses
Bonjour,
Quelques observations ...
Je vous recommande d'éviter d'utiliser les accents de la langue dans les noms d'objets
Sub afficher_détails() ->>> Sub Afficher_Details()
Dans le nom de vos objets, insérer quelques majuscules
Lors de la saisie, vous tapez en minuscule, et après le [ Enter ], les majuscules s'afficheront
automatiquement, ce qui confirme la syntaxe du mot !
Votre structure de IF est linéaire, vous pourriez utiliser une structure [ Select Case ]
exemple type :
Si vous recherchez des exemples de code, je vous recommande mon classeur
VizioXLA que vous trouverez sur excel-download à cette adresse :
https://www.excel-downloads.com/resources/categories/utilitaires.18/
repérer VizioXLA
sans prétention, ce classeur démontre comment utiliser les objets Excels.
Lupin
Quelques observations ...
Je vous recommande d'éviter d'utiliser les accents de la langue dans les noms d'objets
Sub afficher_détails() ->>> Sub Afficher_Details()
Dans le nom de vos objets, insérer quelques majuscules
Lors de la saisie, vous tapez en minuscule, et après le [ Enter ], les majuscules s'afficheront
automatiquement, ce qui confirme la syntaxe du mot !
Votre structure de IF est linéaire, vous pourriez utiliser une structure [ Select Case ]
exemple type :
Sub Afficher_Details() Select Case (Range("D19").Value) Case "Valeur1": AfficheFeuille ("Feuil5") ' Soyez vigilent sur le nom des feuilles Case "Valeur2": AfficheFeuille ("Feuil6") ' Est vraiment [ Feuille5 ], le nom standard Case "Valeur3": AfficheFeuille ("Feuil7") ' devrait être [ Feuil5 ], et ainsi de suite ... End Select End Sub ' Function AfficheFeuille(ByVal LaFle As String) Sheets(LaFle).Visible = True ' Si la feuille est masqué, vous devez la rendre visible Sheets(LaFle).Select ' avant de la sélectionner End Function '
Si vous recherchez des exemples de code, je vous recommande mon classeur
VizioXLA que vous trouverez sur excel-download à cette adresse :
https://www.excel-downloads.com/resources/categories/utilitaires.18/
repérer VizioXLA
sans prétention, ce classeur démontre comment utiliser les objets Excels.
Lupin
Je vais essayer également d'appliquer cette syntaxe en y ajoutant l'affichage de la feuille. (Ce que j'avais effectivement oublié).
Il y a 8 jours encore, je ne savais pas ce qu'était une macro, c'est dire ce qu'il reste à faire...
Cordialement
GB