Masquer ligne sous condition
RésoluLe 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
- Masquer des lignes excel sous condition
- Liste déroulante excel - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne excel - Guide
- Masquer conversation whatsapp - Guide
- Formule excel - Guide
77 réponses
26 oct. 2023 à 08:54
Re,
certainement parce que tu effaces plusieurs cellules en même temps onglet Liste colonne P
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
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
26 oct. 2023 à 09:46
Mais c’est obligé de crée une mise en forme conditionnel ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question26 oct. 2023 à 10:10
Non, c'est juste pour différencier chaque ligne
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
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
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 arrte 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
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 " ?
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.
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
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
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
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 ?
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 ?
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
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.
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
27 oct. 2023 à 11:44
Bonjour perlox34,
Je ne trouve pas cette discussion copier sur une autre ligne sur CCM...