Masquer ligne sous condition

Résolu
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024 - 15 oct. 2023 à 14:00
Le Pingou Messages postés 12075 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 mai 2024 - 27 oct. 2023 à 11:44

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

A voir également:

77 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 08:54

Re,

certainement parce que tu effaces plusieurs cellules en même temps onglet Liste colonne P


0

Ok mais je comprends pas .. quand je copie le code ça ne marche pas .. ça copie sur les mauvaises ligne et ça ne s’efface pas quand j’efface le oui 

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 09:45

re,

Contrôle que tu es sur les bonnes colonnes par rapport au fichier exemple que les noms des onglets correspondent exactement au nom dans le code

https://www.cjoint.com/c/MJAhQ6tVZrF


0
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024
26 oct. 2023 à 09:46

Mais c’est obligé de crée une mise en forme conditionnel ? 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 10:10

Non, c'est juste pour différencier chaque ligne


0
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024
26 oct. 2023 à 11:19

Ok j'ai réussi c'est bon juste un petit probleme sur la suppression 

Regarde ton fichier, en faite on sais fais avoir car on avais mis le même nom. 

Mais si par exemple je mets : 

- Le contact 1 en " oui " ça copie bien 

- Le contact 2 en " oui " ça copie bien 

- Le contact 3 en " oui " ça copie bien 

- Le contact 4 en " oui " ça copie bien 

Mais dès que je supprime un " oui " peut importe la ligne ça me supprime le contact 1 car c'est le premier " oui ". 

En suite peut importe la ligne ou je supprime " oui " ça me supprime le contact 2 car c'est le deuxième " oui ". 

Exemple : J'ai supprimer le " oui " du contact 4 donc je veux que ça me supprime la ligne du contact 4 mais non ça me supprime la ligne du contact 1. 

En suite j'ai fais un autre test en supprimant le " oui " du contact 3 donc je veux que ça me supprime la ligne du contact 3 mais non ça me supprime la ligne du contact 2. 

Merci de voir ce que tu peux faire merci 

0
Le Pingou Messages postés 12075 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 mai 2024 1 433
26 oct. 2023 à 14:16

Bonjour,

Petite intrusion car je n'ai pas de retour concernant ceci: que j'avais posté sur l'autre poste fermé.....https://forums.commentcamarche.net/forum/affich-37928136-copier-ligne-tableau-dans-une-autre-feuille-sous-condition#dernier

Bonjour,

Dans se cas voici un exemple que vous pouvez adapter à vos besoins.

Le fichier : https://www.cjoint.com/c/MJyqFFUvNvZ


0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 15:11

Re,

A force de modifier le code une ligne avait été effacée remplace par ce code 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Controle As Variant, Adresse As String
On Error GoTo fin ' ---------------------------------------- gere les erreurs
    If Target.Column <> 16 Then Exit Sub ' ----------------- limite le declenchement ˆ la colonne 11 soit K
    If Target = "OUI" Or Target = "oui" Then ' ------------- condition de declenchement
    Target.Offset(0, -11).Copy Destination:=Sheets("Machine").Range("F65536").End(xlUp)(2, 1)
    Target.Offset(0, -7).Copy Destination:=Sheets("Machine").Range("I65536").End(xlUp)(2, 1)
    Target.Offset(0, -6).Copy Destination:=Sheets("Machine").Range("J65536").End(xlUp)(2, 1)
    Target.Offset(0, -5).Copy Destination:=Sheets("Machine").Range("K65536").End(xlUp)(2, 1)
    Exit Sub ' --------------------------------------------- si erreur sort de la  procedure
fin: ' ----------------------------------------------------- si erreur arrte la procedure
    End If ' ----------------------------------------------- fin de la procedure
    
    If Target = "" Then ' ---------------------------------- teste la cellule active
    Controle = Target.Offset(0, -11).Value
    With Sheets("Machine")
    On Error GoTo erreur
    Adresse = .Columns("F").Find(Controle).Address ' ------- recherche la valeur du controle efface
        .Range(Adresse).EntireRow.Delete ' ----------------- supprime la ligne
    End With
    Exit Sub ' --------------------------------------------- sort de la procedure
erreur:
    End If
End Sub
 


0
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024
26 oct. 2023 à 17:30

Ok je pense qu'on ai bon aha juste pouvez vous m'expliquer les code que si a l'avenir je décide de changer que je comprenne. 

Si jamais je dois changer de nom d'onglet, ça je sais que je dois modifier toute les mots " machine " en mon nouveau nom " d'onglet " 

Si je change la colonne ou il y aura marquer le " oui " je sais qu'il faut que je modifie :  If Target.Column <> 16 ( que je modifie le chiffre 16 par mon nouveau numéro de colonne. Ex colonne C n°3 etc ... 

Ensuite cette formule : Target.Offset(0, -11).Copy Destination:=Sheets("Machine").Range("F65536").End(xlUp)(2, 1) 

J'ai bien compris que le -11 signifie que ça copie la 11ème cellule en allant vers la gauche de ma celulle n°16. donc la en l'occurence ça devrais me copier les celulles de ma colonne " E " donc ma colonne n° 5.

Mais imaginons que mon " oui " est en colonne " A " donc en colonne n°1 et je veux copier la colonne A et D

Pour la D je mets (0,+3) ? et pour la A je mets quoi ? (0,0)

Ensuite pour ce code : 

Range("F65536")  Je comprends que je copie dans la colonne F mais que veux dire F65536 ? Ca va me copier jusqu'a la ligne 65536 ? Ou ca va me copier jusqu'a des lignes infinis ? Ou c'est juste le code pour que comprenne que ça dois copier en F ? 

Ensuite pour ce bout de formule : 

 Controle = Target.Offset(0, -11).Value Pourquoi (0, -11) ? 

Et pour finir ce code : Adresse = .Columns("F").Find(Controle).Address ' ------- recherche la valeur du controle efface

Pourquoi " F " ? 

0
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024
26 oct. 2023 à 17:36

@Le Pingou merci de ton aide. Mais non ce n'est pas vraiment ça que j'ai besoin. 

Car votre fichier coupe la ligne pour la copier dans un autre onglet. 

Moi je voudrais garder la ligne tout en la copiant dans un autre onglet à l'aide d'un " oui ". 

Mais Mike-31 m'a bien aider sur ce sujet et on a réussi a trouver un bon code. 

Merci en tous cas de votre aide. 

Bonne soirée. 

0
Le Pingou Messages postés 12075 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 mai 2024 1 433
26 oct. 2023 à 18:05

Merci du retour, oui il copie la ligne, mais il est possible de ne pas la supprimer...adapter le code...en conséquence.....!

Au passage salut amical Mike-31

Salutations.
Le Pingou

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
Modifié le 26 oct. 2023 à 18:16

Re,

Target est la cellule dans laquelle on est intervenu

If Target.Column <> 16 EXIT SUB dans ton cas la colonne pilote est la 16 éme soit P ce qui veut dire si une action est menée dans une autre colonne on sort de la procédure

Target.Offset(0, -11) donc à partir de la cellule dans laquelle ont est intervenue on se déplace vers la gauche de -11colonnes, si ont voulait se déplacer vers la droite de 11 colonnes Target.Offset(0, 11)

Sheets("Machine") pour identifier un onglet dans le code  Sheets c'est feuille et entre guillemets le nom de l'onglet concerné

Range("F65536") je sélectionne la cellule F65536 qui était dans les anciennes versions d'Excel la dernière cellule de la colonne

.End(xlUp) précédé de l'identification d'une cellule demande à Excel de remonter jusqu'à la première cellule non vide trouvée 

Controle = Target.Offset(0, -11).Value Controle est une variable que j'ai nommée comme cela et qui va mémoriser le contenu de la cellule -11 à partir de la cellule cible a cet instant du déroulement du code

Adresse = .Columns("F").Find(Controle).Address Adresse est également une variable que j'ai nommé .Columns("F") colonne de recherche  Find(Controle).Address (Controle).Address recherche la valeur mémorisée dans la variable Controle et address est l'adresse de la cellule défini par le code 

Mais pour aller plus loin il faudrait te perfectionner


0
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024
26 oct. 2023 à 18:49

Je sais qu'il faut que je me perfectionne mais avec mon boulot je n'ai vraiment pas le temps c'est pour ça que je pose pleins de questions .. 

Merci en tous cas pour tous ces informations c'est vraiment vraiment cool et ça marche a merveille mais j'aimerai quand même savoir s'il serai possible de modifier quelque reglage aha. 

En faite cela fonctionne parfaitement mais il faut que je vienne dans la celulle manuellement et marquer " OUI " pour que ça se copie. 

Manuellement pourquoi ? Je m'explique. 

Je me suis crée un onglet " formulaire "' et j'ai crée une macro. 

Le but c'est que je remplisse ce formulaire et ça me copie automatiquement ce que j'ai rentré dans l'onglet " client ".

En faite ça m'insere une ligne et ça me copie toute les informations dans les cases correspondantes.  

Mais en faite si je fais ça, comme c'est un copier/coller avec la macro dans la cellule

ça ne va pas me copier la ligne mais par contre du coup si je viens manuellement ecrire " oui " ça se copie sans probleme. 

Serait-il possible de faire quelque chose pour que du moment qu'il y a marqué " oui " dans la cellule ça la copie ? En copiant le mot " oui " biensur. 

https://www.cjoint.com/c/MJAqN2jF5CP

Voici le lien tu pourras voir par toi même l'onglet formulaire. 

Mais c'est un autre fichier celui la il y a pas la macro mais t'a compris le délire. 

Je veux juste savoir quel code rajouter pour que même si je copie un mot dans la cellule déclenchement ça me copie la ligne 

Je sais pas si je me suis fais bien comprendre. 

En tous cas merci pour ces informations 

Et aussi est il possible d'enregistrer un excel en 2 format en même temps ? 

Genre en xlsm et xlsx 

Que j'ai 2 fichier qui s'enregistre en même temps merci 

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 19:22

Re,

tout est possible mais bonjour le code, par contre je n'ai pas tout compris, dans la colonne de déclenchement P tu veux déclencher quelque soit le mot saisi, c'est cela ?


0

Non juste quand " oui " est saisie ! 
Mais en le copiant !

Genre : La colonne de déclenchement est la colonne P 

J’ai un mot qui est " oui " que je viens de copier 

Je le colle dans la cellule P3 par exemple bah ça va pas copier la ligne. 
par contre si par dessus la cellule P3 je viens taper manuellement " oui " là ça viens se copier 

tu vois ce que je veux dire ? 
 

Quand je remplie le formulaire et je viens faire ajouter ça me copie les valeurs donc j’aimerai que ça déclenche même en copiant !

tu vois ? 

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 19:41

Ah non ça ce n'est pas possible, quelque soit le mode dont la cellule est renseignée OUI ou oui Excel déclenchera le code 

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 079
26 oct. 2023 à 21:49

Re,

Je viens de découvrir ta plaisanterie de faire travailler plusieurs intervenants sur plusieurs Forums sans parler de l'ouverture en doublon de ta demande en faisant bidouiller les codes des uns par les autres et vice versa sur le même sujet.

Ce comportement est un manque de respect a l'encontre de bénévoles qui donnent de leur temps pour t'aider.

Je passe le statut de cette discussion en résolu et ma participation s'arrête ici.


0
perlox34 Messages postés 76 Date d'inscription dimanche 15 octobre 2023 Statut Membre Dernière intervention 27 février 2024
27 oct. 2023 à 10:36

Quel plaisanterie ? 
J’ai juste poser ma questions sur 2 forums diffèrent pour avoir différent avis avec différent personnes ! 
 

Une personne intervenant sur commentcamarche.net n’intervient pas forcément sur forumexcel 
 

Et puis en parlant de doublon sur commentcamarche.net tu n’a pas dû lire ma réponse sur la discussion " copier sur une autre ligne " je te laisse allez la voir 
 

0
Le Pingou Messages postés 12075 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 mai 2024 1 433
27 oct. 2023 à 11:44

Bonjour perlox34,

Je ne trouve pas cette discussion copier sur une autre ligne sur CCM...


0