Choix colonne par vba


#1

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)


#2

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)


#3

Bonjour Mimimathy,
Le fichier fonctionne bien.
Mais j’ai copié le code dans mon fichier et il y a l’erreur suivant apparaît:
image

Le code suivant est coloré en jaune: “Col = Trouve.Column”
Merci


#4

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 :grin:


#5

Re,
C’est d’accord, vous trouvez ci-joint le fichier.
Merci
=> MAtrice.xlsm (52,3 Ko)


#6

Re,

Un classeur avec un mot de passe pour travailler dessus, c’est super :-1:

Néanmoins, en sélectionnant de F4 à AF4,
Clic droit
On copie
Clic droit
On colle les valeurs

Tu as des formules en place


#7

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.


#8

Re,
le fichier sans mot de passe est devenu “INVISIBLE”,
C’est une astuce que je ne connaissais pas :smiley:

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)


#9

Re Mimimathy,
C’est mieux. Merci à vous.
Je veux apprendre le vba mais j’arrive pas par où commencer?


#10

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


#11

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.?


#12

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


#13

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


#14

Re,
Suivre des tutos sur YouTube, et commencer petit à petit à apprendre les boucles en premier

Et s’exercer


#15

Ok merci
Bonne continuation


#16

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.