Bonjour à tous,
Je sollicite votre aide pour le cas d’affichage des colonnes par VBA.
Ci-joint un fichier avec une explication,
Merci à vous!
=> Fichier essai.xlsm (31,5 Ko)
Re,
Une petite macro dans la feuille 5
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee$, Col%
Columns("F:AF").Select
Selection.EntireColumn.Hidden = False
Valeur_Cherchee = Range("D2")
If Valeur_Cherchee = "Tout" Then Range("D2").Select: Exit Sub
Set PlageDeRecherche = ActiveSheet.Rows(4)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
Col = Trouve.Column
Columns("F:AF").EntireColumn.Hidden = True
Columns(Col).EntireColumn.Hidden = False
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
Range("D2").Select
End Sub
Fichier essai.xlsm (27,8 Ko)
Bonjour Mimimathy,
Le fichier fonctionne bien.
Mais j’ai copié le code dans mon fichier et il y a l’erreur suivant apparaît:
Le code suivant est coloré en jaune: « Col = Trouve.Column »
Merci
Bonjour,
Sans fichier, comment veut tu trouver la solution ???
vérifie dans ton fichier original si les lignes et colonnes sont aux mêmes emplacements
Comme je te l’avais déjà précisé, un classeur exemple doit-être au maximum identique à l’original
à moins de savoir lire et modifier la macro
Re,
C’est d’accord, vous trouvez ci-joint le fichier.
Merci
=> MAtrice.xlsm (52,3 Ko)
Re,
Un classeur avec un mot de passe pour travailler dessus, c’est super
Néanmoins, en sélectionnant de F4 à AF4,
Clic droit
On copie
Clic droit
On colle les valeurs
Tu as des formules en place
Re,
Ci-joint le fichier sans mdp. Vraiment désolé.
Oui le fichier contient des formules comme nous avons parlé hier lors du regroupement dans l’onglet Copie.
Re,
le fichier sans mot de passe est devenu “INVISIBLE”,
C’est une astuce que je ne connaissais pas
remplace cette ligne dans la macro,
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
par celle-ci
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlPart, LookIn:=xlValues)
Re Mimimathy,
C’est mieux. Merci à vous.
Je veux apprendre le vba mais j’arrive pas par où commencer?
Re,
Je suppose que cette macro, tu voudrais la placer dans chaque feuille (J.E. - T.P.S. - Etc)
car si c’est le cas, ce n’est pas de cette manière qu’il faut s’y prendre
cela va te faire N(x) copie sur les feuilles et grossir ton classeur inutilement
Re,
Comment devrais-je donc faire car c’est vraiment le cas, toutes les feuilles JE - TPS …) doivent avoir les mêmes fonctionnalités comme J.E.?
Re,
1 - Supprimer la macro dans la feuille J.E.
2 - Coller cette macro dans le ThisWorkbook
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee$, Col%
Columns("F:AF").Select
Selection.EntireColumn.Hidden = False
Valeur_Cherchee = Range("D2").Value
If Valeur_Cherchee = "Tout" Then Range("D2").Select: Exit Sub
Set PlageDeRecherche = ActiveSheet.Rows(4)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlPart, LookIn:=xlValues)
Col = Trouve.Column
Columns("F:AF").EntireColumn.Hidden = True
Columns(Col).EntireColumn.Hidden = False
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
Range("D2").Select
End Sub
3 - Dans l’onglet J.E. copier la cellule D2 (celle qui a le déroulant)
4 - Sélectionner tous les onglets devant avoir la liste déroulante ( on clique sur J.E., on appuie sur la touche MAJ et on sélectionne le dernier onglet) tous les onglets sont sélectionnés
5 - On colle dans la cellule D2
Tous les onglets auront la liste et seront opérationnels pour le masquage
Re,
OK d’accord.
Mais à propos de ma question ci-dessous, si je vais apprendre le VBA sous excel, quel cours dois-je suivre et par quel support dois-je commencer?
Vous m’avez déjà envoyé un site mais j’ai besoin d’un petit astuce pour y arriver.
MErci
Re,
Suivre des tutos sur YouTube, et commencer petit à petit à apprendre les boucles en premier
Et s’exercer
Ok merci
Bonne continuation
Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.