Masquer ligne sous condition
RésoluLe Pingou -
Bonjour, pourriez vous me dire la formule de macro pour masquer une ligne sous condition svp merci
Je vous explique : Je voudrais que la ligne 11 reste afficher pour marquer la raison social quand il y a marqué " Pro " en D5 mais par contre si je marque perso en D5 je voudrais masquer la ligne 11.
Si vous pouvez me donner la formule merci beaucoup
Macintosh / Opera 102.0.0.0
- Masquer des lignes excel sous condition
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer colonne excel - Guide
77 réponses
Re,
sur Mac je ne sais pas, et n'ai pas de Mac sous la main. Tu peux essayer d'écrire dans une cellule =LIGNE(A1:A10) tu sélectionnes LIGNE(A1:A10) et tu joues avec les touches de fonction F dans la barre des formules devrait s'afficher ceci{1;2;3;4;5;6;7;8;9;10} je chercherai de mon côté et reviendrais sur le sujet
Pour ton fichier regarde s'il répond à tes attentes
https://www.cjoint.com/c/MJtujPzbAFF
Je vais regarder de mon côté merci.
Oui c'est exactement ça merci comment t'a fais ? Que je le copie sur mon fichier original aha
Re,
J'ai sélectionné le tableau onglet Suivis C6:H12, ce qui active l'onglet Création sur le ruban/Style de tableau/j'ai sélectionné le premier style Clair ensuite j'ai colorisé les entêtes en noir police blanche etc ...
ensuite j'ai incrémenté la première ligne des formules jusqu'à la ligne 50
j'ai coloriser toutes les lignes en bleu, de sorte à ne voir que les entêtes en noir, ensuite j'ai créé deux mises en forme conditionnelles, Accueil/Mise en forme conditionnelle pour coloriser en gris les lignes impairs et en blanc les lignes pairs et les bordures des cellules
Re,
Tu peux me dire pourquoi le tableau Liste Client et tableau Suivis ont des structures différentes, dans le tableau Suivis tu ignores les colonnes N°, CLIENT PROSPECT et PARTICULIER cela n'est pas un problème,
mais sur l'onglet SUIVIS tu as nom prénom, adresse puis 7 colonnes numérotées de 3 à 9
Ensuite il faut faire attention lorsque tu nommes des plages ou onglets, de bien reproduire l'orthographe employé ou ne pas rajouter des espaces, tes sources d'erreurs étaient là.
que veux tu faire avec le bouton OK onglet Formulaire, le code est mal écrit
https://www.cjoint.com/c/MJxuIMgkz7F
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionRe,
Comme je te l'ai déjà dit, les messages privés doivent rester exceptionnels, pour te répondre la colonne contrôle devient nécessaire sur l'onglet de transfert surtout après ta dernière demande dont la ligne doit s'effacer si on supprime "OUI" sur le premier fichier et pour effacer la bonne ligne le contrôle Copié est devenu date et heure
https://www.cjoint.com/c/MJyl1nYh41F
et pourquoi ne pas utiliser un fichier sans macro
https://www.cjoint.com/c/MJymSLRMptF
Psk je ne peux pas utiliser de formule pour ce que je veux faire finalement il me faut une macro.
Super ta macro, par contre au lieu de copier la ligne entiere, comment faire pour copier que certaines cellule ? Je voudrais copier que (Nom, Prénom, Adresse. ) Merci
Re,
comme ça par contre sans la colonne contrôle difficile de supprimer la ligne onglet suivis en fonction de l'effacement OUI onglet liste surtout si à l'usage tu peut avoir plusieurs noms identique dans ton fichier
https://www.cjoint.com/c/MJyqxOkzN7F
Je pense ce sera un des derniers test.
https://www.cjoint.com/c/MJzftSsKEYt
J'aimerai plutot copier ( NOM, ADRESSE, CP, VILLES ).
Ducoup dans mon tableau " liste " je voudrais copier le ligne 5 a la ligne 2 du tableau " machine " si " oui " biensur
E5 en E2 de l'onglet " machine "
G5 en H2 de l'onglet " machine "
I5 en I2 de l'onglet " machine "
J5 en J2 de l'onglet " machine "
Merci encore, et bien sur supprimer la ligne si on supprime le " oui ".
D’accord merci peux-tu me copier le code pour je puisse le copier sur l’original stp merci
et me dire ce qui faut modifier pour copier et coller une autre colonne car peut être que je voudrais copier une autre colonne à l’avenir
merci de ton aide
Re,
pour voir le code, clic droit sur l'onglet Liste ou Alt et touche de fonction F11 et tu remarqueras ces lignes
Target.Offset(0, -6).Copy Destination:=Sheets("Machine").Range("E65536").End(xlUp)(2, 1)
Target.Offset(0, -4).Copy Destination:=Sheets("Machine").Range("H65536").End(xlUp)(2, 1)
Target.Offset(0, -2).Copy Destination:=Sheets("Machine").Range("I65536").End(xlUp)(2, 1)
Target.Offset(0, -1).Copy Destination:=Sheets("Machine").Range("J65536").End(xlUp)(2, 1)
en fait chaque cellule copiée est sélectionnée à partir de la cellule qui change colonne K (Suivis)
exemple pour la première ligne du code, à partir d'une cellule colonne K on décale la sélection de -6 cellules vers la gauche que l'on Copy dans l'onglet "Machine" dans la première cellule colonne E trouvée Range("E65536").End(xlUp)(2, 1)Target.Offset(0, -6).Copy Destination:=Sheets("Machine").Range("E65536").End(xlUp)(2, 1)
et ainsi de suite parce que les cellules à copier ne sont pas contiguës
Ok cool super merci j'ai vue que la colonne L de la feuil1 ou il y a marqué controle ne sert plus a rien c'est ça, je peux la supprimer ?
Sinon le E65536 correspont a jusqu'a la ligne 65536 ? Merci
Re,
la colonne Contrôle ne sert plus à rien,
E65536 veut dire à Excel qu'à partir de cette cellule
.End(xlUp) Excel va rechercher la première cellule non vide de la colonne E en remontant
(2, 1) ou Offset(1,0) à partir de la première cellule non vide trouvée par Excel on descend d'une cellule dans la même colonne pour se positionner sur la première cellule vide
Voici ton code actuelle :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Controle As Variant, Adresse As String
On Error GoTo fin
If Target.Column <> 11 Then Exit Sub
If Target = "OUI" Or Target = "oui" And Target.Offset(0, 1) = "" Then
Target.Offset(0, -6).Copy Destination:=Sheets("Machine").Range("E65536").End(xlUp)(2, 1)
Target.Offset(0, -4).Copy Destination:=Sheets("Machine").Range("H65536").End(xlUp)(2, 1)
Target.Offset(0, -2).Copy Destination:=Sheets("Machine").Range("I65536").End(xlUp)(2, 1)
Target.Offset(0, -1).Copy Destination:=Sheets("Machine").Range("J65536").End(xlUp)(2, 1)
Exit Sub
fin:
End If
If Target = "" Then
Controle = Target.Offset(0, 1)
Target.Offset(0, 1) = ""
With Sheets("Machine")
On Error GoTo erreur
Adresse = .Columns("L").Find(Controle).Address
.Range(Adresse).EntireRow.Delete
End With
Exit Sub
End If
End Sub
Dans mon fichier officiel, j'ai le " oui " dans la colonne P donc colonne n°16
Je dois copier :
- La colonne E donc colonne n°5
- La colonne I donc la colonne n°9
- La colonne J donc la colonne n°10
- La colonne K donc la colonne n°11
Et je voudrais copier :
- La colonne E dans l'onglet " SUIVIS " a la colonne F
- La colonne I dans l'onglet " SUIVIS " a la colonne I
- La colonne J dans l'onglet " SUIVIS " a la colonne J
- La colonne K dans l'onglet " SUIVIS " a la colonne K
En laissant de nouveau ton code ci-dessous j'ai juste rajouter en gras à côté les valeurs que je dois remplacer.
Es-ce juste ? Car ca ne marche pas sur mon fichier original.
Exemple :
- Le 16 je dois le mettre a la place du 11
- Le -11 a la place du -6
- Le F a la place du E
- Le -7 a la place du -4
- Le I a la place du H
- Le -6 a la place du -2
- Le J a la place du I
- Le -5 a la place du -1
- Le K a la place du J
- Le suivis a la place de machine
Il manque autre chose avec tous ce que je t'ai dis ? Ou peut etre des choses a supprimer ?
Merci à toi
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Controle As Variant, Adresse As String
On Error GoTo fin
If Target.Column <> 11 16 Then Exit Sub
If Target = "OUI" Or Target = "oui" And Target.Offset(0, 1) = "" Then
Target.Offset(0, -6 -11 ).Copy Destination:=Sheets("Machine").Range("FE65536").End(xlUp)(2, 1)
Target.Offset(0, -4 -7 ).Copy Destination:=Sheets("Machine").Range("IH65536").End(xlUp)(2, 1)
Target.Offset(0, -2 -6 ).Copy Destination:=Sheets("Machine").Range("JI65536").End(xlUp)(2, 1)
Target.Offset(0, -1 -5 ).Copy Destination:=Sheets("Machine").Range("KJ65536").End(xlUp)(2, 1)
Exit Sub
fin:
End If
If Target = "" Then
Controle = Target.Offset(0, 1)
Target.Offset(0, 1) = ""
With Sheets("SUIVISMachine")
On Error GoTo erreur
Adresse = .Columns("L").Find(Controle).Address
.Range(Adresse).EntireRow.Delete
End With
Exit Sub
End If
End Sub
Re,
oui c'est ça, revoie également les mise en formes conditionnelles
https://www.cjoint.com/c/MJzt0Z0XGIF