Ajouter/Supprimer une ligne de code VBA en fonction d'une cellule
Résolu/Fermé
empereurtilleul
-
6 juil. 2021 à 12:17
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 - 19 juil. 2021 à 23:18
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 - 19 juil. 2021 à 23:18
A voir également:
- Ajouter/Supprimer une ligne de code VBA en fonction d'une cellule
- Supprimer une page word - Guide
- Aller à la ligne dans une cellule excel - Guide
- Fonction si et - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
13 réponses
C'est sur que c'est plus simple avec le fichier.
Je ne vois pas bien la boucle que vous voyez.
Je l'imagine comme ça:
Etc jusqu'à être sur que cette boucle comprend tout?
Sinon je ne vois pas très bien la boucle à utiliser.
Merci d'avance
Je ne vois pas bien la boucle que vous voyez.
Je l'imagine comme ça:
Sub SupprUsinenonSSURG() Dim lRow As Long Dim iCntr As Long lRow = 7000 For iCntr = lRow To 1 Step -1 If Cells(iCntr, 2).Value = "USINE" Then If Cells(iCntr, 3).Value <> "SS_URG.." Then If Cells(iCntr, 3).Value <> "SS_URG2.." Then If Cells(iCntr, 3).Value <> Range("C16").Value Then If Cells(iCntr, 3).Value <> Range("C17").Value Then Rows(iCntr).Delete End If End If End If End If End If Next End Sub
Etc jusqu'à être sur que cette boucle comprend tout?
Sinon je ne vois pas très bien la boucle à utiliser.
Merci d'avance
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
6 juil. 2021 à 14:27
6 juil. 2021 à 14:27
Bonjour,
Eh bien si vous le voulez, alors c'est OUI.
A vous de voir si le résultat vous convient!
Eh bien si vous le voulez, alors c'est OUI.
A vous de voir si le résultat vous convient!
D'accord, et quel est le code pour qu'on puisse le faire?
Mais c'est pas exactement ce que je veux.
Merci pour votre aide
Sub AjoutLigne() ' Set Module = ThisWorkbook.VBProject.VBComponents With Module("Module1").CodeModule x = .CountOfLines For i = 1 To Range("A65535").End(xlUp).Row .InsertLines x + i, Range("A" & i) Next End With End Sub
Mais c'est pas exactement ce que je veux.
Merci pour votre aide
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
6 juil. 2021 à 14:38
6 juil. 2021 à 14:38
Bonjour,
Vous dites: Mais c'est pas exactement ce que je veux.
Alors vous voulez quoi?
Vous dites: Mais c'est pas exactement ce que je veux.
Alors vous voulez quoi?
Le code que je vous ai mis au dessus va copier toute la colonne A et la mettre dans le code, ceci nécessite donc d'avoir tout le code VBA dans cette colonne A. Or ce n'est pas ce que je veux.
Mon code actuel est le suivant:
Je voudrais rajouter à la 10ème ligne ceci:
"ABC" étant ce qui se trouve dans la cellule A1. Vous me dites que OUI, mais je ne vois pas comment, d'où l'interet de poser cette question sur le forum.
Mon code actuel est le suivant:
Sub SupprUsinenonSSURG() Dim lRow As Long Dim iCntr As Long lRow = 7000 For iCntr = lRow To 1 Step -1 If Cells(iCntr, 2).Value = "USINE" Then If Cells(iCntr, 3).Value <> "SS_URG.." Then Rows(iCntr).Delete End If End If Next End Sub
Je voudrais rajouter à la 10ème ligne ceci:
If Cells(iCntr, 3).Value <> "ABC" Then Rows(iCntr).Delete End If
"ABC" étant ce qui se trouve dans la cellule A1. Vous me dites que OUI, mais je ne vois pas comment, d'où l'interet de poser cette question sur le forum.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
6 juil. 2021 à 17:59
6 juil. 2021 à 17:59
Bonjour,
Eh bien pour moi le code actuel ne copie rien du tout mais il supprime chaque ligne qui contient 'USINE' en colonne 2 si en colonne 3 c'est différent de 'SS_URG..'
Pour votre 10ème ligne ce que vous voulez c'est par rapport à la cellule A1 donc:
Eh bien pour moi le code actuel ne copie rien du tout mais il supprime chaque ligne qui contient 'USINE' en colonne 2 si en colonne 3 c'est différent de 'SS_URG..'
Pour votre 10ème ligne ce que vous voulez c'est par rapport à la cellule A1 donc:
If Cells(iCntr.Value) <> Cells(1, 1).Value Then
Rows(iCntr).Delete
End If
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ce sera plus claire avec mon fichier:
https://www.cjoint.com/c/KGgqFytzZaQ
Je veux qu'en ajoutant un Locator (dans l'onglet SSURG, si j'ajoute "ABC"), dans le code je me retrouve avec:
Et donc inversement si je supprime un locator, mais on en est pas la encore
Merci d'avance
https://www.cjoint.com/c/KGgqFytzZaQ
Je veux qu'en ajoutant un Locator (dans l'onglet SSURG, si j'ajoute "ABC"), dans le code je me retrouve avec:
Sub SupprUsinenonSSURG() Dim lRow As Long Dim iCntr As Long lRow = 7000 For iCntr = lRow To 1 Step -1 If Cells(iCntr, 2).Value = "USINE" Then If Cells(iCntr, 3).Value <> "SS_URG.." Then If Cells(iCntr, 3).Value <> "SS_URG2.." Then If Cells(iCntr, 3).Value <> "ABC.." Then Rows(iCntr).Delete End If End If End If End If Next End Sub
Et donc inversement si je supprime un locator, mais on en est pas la encore
Merci d'avance
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
Modifié le 6 juil. 2021 à 23:49
Modifié le 6 juil. 2021 à 23:49
Bonjour,
Eh bien j'ai enfin compris votre demande, ce n'est pas possible de faire écrire une ligne de code en fonction d'ajout dans votre liste de condition. Vous devez dans votre code faire une boucle sur votre liste de condition.
Désolé, je ne peut pas en faire plus, suis absent jusqu'à jeudi.
Eh bien j'ai enfin compris votre demande, ce n'est pas possible de faire écrire une ligne de code en fonction d'ajout dans votre liste de condition. Vous devez dans votre code faire une boucle sur votre liste de condition.
Désolé, je ne peut pas en faire plus, suis absent jusqu'à jeudi.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
7 juil. 2021 à 13:11
7 juil. 2021 à 13:11
Bonjour,
Juste au passage, sur votre fichier vous ne mettez rien dans la cellule 'D4' de la feuille 'SSURG' et clic sur le bouton 'Supprimer’ et constaté le résultat. Merci de votre commentaire.
Je regarderai le tout ce soir.
Pour moi je comprends que la liste ‘Liste Locator SS_URG' contient uniquement les conditions pour supprimer les lignes qui ne correspondent pas.
Est-ce vrai Oui / Non?
Juste au passage, sur votre fichier vous ne mettez rien dans la cellule 'D4' de la feuille 'SSURG' et clic sur le bouton 'Supprimer’ et constaté le résultat. Merci de votre commentaire.
Je regarderai le tout ce soir.
Pour moi je comprends que la liste ‘Liste Locator SS_URG' contient uniquement les conditions pour supprimer les lignes qui ne correspondent pas.
Est-ce vrai Oui / Non?
Bonjour,
Bien vu, je vais régler cela ce soir.
C'est exactement cela, et le problème est que cette liste peut etre longue de 2, 5 ou même 25 valeurs.
Bien vu, je vais régler cela ce soir.
C'est exactement cela, et le problème est que cette liste peut etre longue de 2, 5 ou même 25 valeurs.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
7 juil. 2021 à 17:49
7 juil. 2021 à 17:49
Bonjour,
Merci du retour sans le commentaire demandé.
Ma proposition: https://mon-partage.fr/f/qoG2Icur/
Merci du retour sans le commentaire demandé.
Ma proposition: https://mon-partage.fr/f/qoG2Icur/
Bonjour,
J'ai de nouveau un problème concernant ce code.
En effet lorsque je le lance, le code tourne pendant 2minutes environ, avant qu'il ne plante ("Microsoft Excel Ne répond plus")
Comment palier ce problème?
Merci d'avance
J'ai de nouveau un problème concernant ce code.
En effet lorsque je le lance, le code tourne pendant 2minutes environ, avant qu'il ne plante ("Microsoft Excel Ne répond plus")
Comment palier ce problème?
Merci d'avance
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
19 juil. 2021 à 16:55
19 juil. 2021 à 16:55
Bonjour,
Je viens de réaliser un test avec plus de 1000lignes à traiter et une liste de condition de 50 éléments. Tout se déroule en moins de 1 à 2 secondes. sans problème.
Sans votre fichier je ne peux pas rechercher le problème!
Pouvez-vous en dire plus de ce qui c'est passée avant d'avoir ce problème ......?
Je viens de réaliser un test avec plus de 1000lignes à traiter et une liste de condition de 50 éléments. Tout se déroule en moins de 1 à 2 secondes. sans problème.
Sans votre fichier je ne peux pas rechercher le problème!
Pouvez-vous en dire plus de ce qui c'est passée avant d'avoir ce problème ......?
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
19 juil. 2021 à 23:18
19 juil. 2021 à 23:18