Macro excel VBA - Selection lignes jusqu'à ligne contenant "x"
5 réponses
Mathieu38G
Bonjour,
Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ?
En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour, '------------------------------------------------------- Sub test() Dim Rg As Range, Rg1 As Range Dim PremierMot As String Dim DernierMot As String PremierMot = "toto" DernierMot = "titi" With Worksheets("Feuil1") 'Nom de la feuille à adapter Set Rg = .Cells.Find(what:=PremierMot, LookIn:=xlValues, lookat:=xlWhole) Set Rg1 = .Cells.Find(what:ÞrnierMot, LookIn:=xlValues, lookat:=xlWhole) If Not Rg Is Nothing And Not Rg1 Is Nothing Then 'Efface les données et les formats de cellules .Range(Rg, Rg1).Clear 'Supprime la plage de cellules '.Range(Rg, Rg1).Delete shift:=xlUp ' OU xlToLeft End If End With End Sub '------------------------------------------------------- MichD "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu.
Bonjour,
'-------------------------------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim PremierMot As String
Dim DernierMot As String
PremierMot = "toto"
DernierMot = "titi"
With Worksheets("Feuil1") 'Nom de la feuille à adapter
Set Rg = .Cells.Find(what:=PremierMot, LookIn:=xlValues, lookat:=xlWhole)
Set Rg1 = .Cells.Find(what:ÞrnierMot, LookIn:=xlValues, lookat:=xlWhole)
If Not Rg Is Nothing And Not Rg1 Is Nothing Then
'Efface les données et les formats de cellules
.Range(Rg, Rg1).Clear
'Supprime la plage de cellules
'.Range(Rg, Rg1).Delete shift:=xlUp ' OU xlToLeft
End If
End With
End Sub
'-------------------------------------------------------
MichD
"Mathieu38G" a écrit dans le message de groupe de discussion :
cuudnSouY_E4f_XFnZ2dnUU798zNnZ2d@giganews.com...
Bonjour,
Existe-t-il une commande permettant de sélectionner toutes les lignes d'un
tableau situées entre "telle cellule contenant mot X" et "telle cellule
contenant mot Y" ?
En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes
contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que
dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur
une ligne prévue pour être supprimée.
Bonjour, '------------------------------------------------------- Sub test() Dim Rg As Range, Rg1 As Range Dim PremierMot As String Dim DernierMot As String PremierMot = "toto" DernierMot = "titi" With Worksheets("Feuil1") 'Nom de la feuille à adapter Set Rg = .Cells.Find(what:=PremierMot, LookIn:=xlValues, lookat:=xlWhole) Set Rg1 = .Cells.Find(what:ÞrnierMot, LookIn:=xlValues, lookat:=xlWhole) If Not Rg Is Nothing And Not Rg1 Is Nothing Then 'Efface les données et les formats de cellules .Range(Rg, Rg1).Clear 'Supprime la plage de cellules '.Range(Rg, Rg1).Delete shift:=xlUp ' OU xlToLeft End If End With End Sub '------------------------------------------------------- MichD "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu.
Jacquouille
Bonsoir Mathieu, Voici ce que j'ai trouvé. La plage à analyser = A:A B1 et B2 contenant les bornes. Le top étant de déclarer les variables x et y. A toi de savoir.... Mon vieux 2003 le fait auto pour moi. -)) Je ne sais pas faire plus court. ---------------- Sub Efface_entre_bornes() x = [match(b1,A:A,0)] y = [match(b2,A:A,0)] Range("A" & x & ":" & "A" & y).Clear End Sub --------------------------------------------- Jacques " Le vin est au repas ce que le parfum est à la femme." . "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Bonsoir Mathieu,
Voici ce que j'ai trouvé.
La plage à analyser = A:A
B1 et B2 contenant les bornes.
Le top étant de déclarer les variables x et y. A toi de savoir....
Mon vieux 2003 le fait auto pour moi. -))
Je ne sais pas faire plus court.
----------------
Sub Efface_entre_bornes()
x = [match(b1,A:A,0)]
y = [match(b2,A:A,0)]
Range("A" & x & ":" & "A" & y).Clear
End Sub
---------------------------------------------
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Mathieu38G" a écrit dans le message de groupe de discussion :
cuudnSouY_E4f_XFnZ2dnUU798zNnZ2d@giganews.com...
Bonjour,
Existe-t-il une commande permettant de sélectionner toutes les lignes d'un
tableau situées entre "telle cellule contenant mot X" et "telle cellule
contenant mot Y" ?
En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes
contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que
dans certains cas, il y a des lignes supplémentaires qui se trouvent alors
sur
une ligne prévue pour être supprimée.
Es-ce que quelqu'un peut m'aider ?
Merci beaucoup par avance.
Mathieu.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonsoir Mathieu, Voici ce que j'ai trouvé. La plage à analyser = A:A B1 et B2 contenant les bornes. Le top étant de déclarer les variables x et y. A toi de savoir.... Mon vieux 2003 le fait auto pour moi. -)) Je ne sais pas faire plus court. ---------------- Sub Efface_entre_bornes() x = [match(b1,A:A,0)] y = [match(b2,A:A,0)] Range("A" & x & ":" & "A" & y).Clear End Sub --------------------------------------------- Jacques " Le vin est au repas ce que le parfum est à la femme." . "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Jacquouille
Re Ce filet de macro efface aussi les bornes. Sub Efface_aussi_bornes() x = [match(b1,A:A,0)] y = [match(b2,A:A,0)] Range("A" & x & ":" & "A" & y).Clear End Sub ------------------------------------------ Si tu veux garder celles-ci, voici qui efface ENTRE les bornes et garde celles-ci Sub Efface_entre_bornes() x = Evaluate("=match(b1,A:A,0)") 'evaluate = crochets = formule y = [match(b2,A:A,0)] 'Equiv(B2;A:A;0) If y - x < 2 Then Exit Sub Else: Range("A" & x + 1 & ":" & "A" & y - 1).Clear End If End Sub --------------------------------- Jacques " Le vin est au repas ce que le parfum est à la femme." . "Jacquouille" a écrit dans le message de groupe de discussion : o4c1dk$1oni$ Bonsoir Mathieu, Voici ce que j'ai trouvé. La plage à analyser = A:A B1 et B2 contenant les bornes. Le top étant de déclarer les variables x et y. A toi de savoir.... Mon vieux 2003 le fait auto pour moi. -)) Je ne sais pas faire plus court. ---------------- Sub Efface_entre_bornes() x = [match(b1,A:A,0)] y = [match(b2,A:A,0)] Range("A" & x & ":" & "A" & y).Clear End Sub --------------------------------------------- Jacques " Le vin est au repas ce que le parfum est à la femme." . "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Re
Ce filet de macro efface aussi les bornes.
Sub Efface_aussi_bornes()
x = [match(b1,A:A,0)]
y = [match(b2,A:A,0)]
Range("A" & x & ":" & "A" & y).Clear
End Sub
------------------------------------------
Si tu veux garder celles-ci, voici qui efface ENTRE les bornes et garde
celles-ci
Sub Efface_entre_bornes()
x = Evaluate("=match(b1,A:A,0)") 'evaluate = crochets = formule
y = [match(b2,A:A,0)] 'Equiv(B2;A:A;0)
If y - x < 2 Then
Exit Sub
Else:
Range("A" & x + 1 & ":" & "A" & y - 1).Clear
End If
End Sub
---------------------------------
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille" a écrit dans le message de groupe de discussion :
o4c1dk$1oni$1@gioia.aioe.org...
Bonsoir Mathieu,
Voici ce que j'ai trouvé.
La plage à analyser = A:A
B1 et B2 contenant les bornes.
Le top étant de déclarer les variables x et y. A toi de savoir....
Mon vieux 2003 le fait auto pour moi. -))
Je ne sais pas faire plus court.
----------------
Sub Efface_entre_bornes()
x = [match(b1,A:A,0)]
y = [match(b2,A:A,0)]
Range("A" & x & ":" & "A" & y).Clear
End Sub
---------------------------------------------
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Mathieu38G" a écrit dans le message de groupe de discussion :
cuudnSouY_E4f_XFnZ2dnUU798zNnZ2d@giganews.com...
Bonjour,
Existe-t-il une commande permettant de sélectionner toutes les lignes d'un
tableau situées entre "telle cellule contenant mot X" et "telle cellule
contenant mot Y" ?
En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes
contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que
dans certains cas, il y a des lignes supplémentaires qui se trouvent alors
sur
une ligne prévue pour être supprimée.
Es-ce que quelqu'un peut m'aider ?
Merci beaucoup par avance.
Mathieu.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Re Ce filet de macro efface aussi les bornes. Sub Efface_aussi_bornes() x = [match(b1,A:A,0)] y = [match(b2,A:A,0)] Range("A" & x & ":" & "A" & y).Clear End Sub ------------------------------------------ Si tu veux garder celles-ci, voici qui efface ENTRE les bornes et garde celles-ci Sub Efface_entre_bornes() x = Evaluate("=match(b1,A:A,0)") 'evaluate = crochets = formule y = [match(b2,A:A,0)] 'Equiv(B2;A:A;0) If y - x < 2 Then Exit Sub Else: Range("A" & x + 1 & ":" & "A" & y - 1).Clear End If End Sub --------------------------------- Jacques " Le vin est au repas ce que le parfum est à la femme." . "Jacquouille" a écrit dans le message de groupe de discussion : o4c1dk$1oni$ Bonsoir Mathieu, Voici ce que j'ai trouvé. La plage à analyser = A:A B1 et B2 contenant les bornes. Le top étant de déclarer les variables x et y. A toi de savoir.... Mon vieux 2003 le fait auto pour moi. -)) Je ne sais pas faire plus court. ---------------- Sub Efface_entre_bornes() x = [match(b1,A:A,0)] y = [match(b2,A:A,0)] Range("A" & x & ":" & "A" & y).Clear End Sub --------------------------------------------- Jacques " Le vin est au repas ce que le parfum est à la femme." . "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
mathieu38g
Le dimanche 01 Janvier 2017 à 12:06 par Mathieu38G :
Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu.
Bonjour, Merci beaucoup pour vos conseils ! Je vais tester ca, j'vous tiens au courant ;). A bientôt.
Le dimanche 01 Janvier 2017 à 12:06 par Mathieu38G :
> Bonjour,
>
> Existe-t-il une commande permettant de sélectionner toutes les lignes
> d'un tableau situées entre "telle cellule contenant mot X" et
> "telle cellule contenant mot Y" ?
>
> En fait j'ai besoin dans un tableau de supprimer toujours les mêmes
> lignes contenant des valeurs qui ne m'intéressent pas. Seulement le
> souci c'est que dans certains cas, il y a des lignes supplémentaires qui
> se trouvent alors sur une ligne prévue pour être
> supprimée.
>
> Es-ce que quelqu'un peut m'aider ?
>
> Merci beaucoup par avance.
>
>
> Mathieu.
Bonjour,
Merci beaucoup pour vos conseils ! Je vais tester ca, j'vous tiens au courant ;).
A bientôt.
Le dimanche 01 Janvier 2017 à 12:06 par Mathieu38G :
Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu.
Bonjour, Merci beaucoup pour vos conseils ! Je vais tester ca, j'vous tiens au courant ;). A bientôt.
mathieu38g
Le dimanche 01 Janvier 2017 à 15:05 par MichD :
Bonjour, '------------------------------------------------------- Sub test() Dim Rg As Range, Rg1 As Range Dim PremierMot As String Dim DernierMot As String PremierMot = "toto" DernierMot = "titi" With Worksheets("Feuil1") 'Nom de la feuille à adapter Set Rg = .Cells.Find(what:=PremierMot, LookIn:=xlValues, lookat:=xlWhole) Set Rg1 = .Cells.Find(what:ÞrnierMot, LookIn:=xlValues, lookat:=xlWhole) If Not Rg Is Nothing And Not Rg1 Is Nothing Then 'Efface les données et les formats de cellules .Range(Rg, Rg1).Clear 'Supprime la plage de cellules '.Range(Rg, Rg1).Delete shift:=xlUp ' OU xlToLeft End If End With End Sub '------------------------------------------------------- MichD "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu.
Bonjour et merci beaucoup pour avoir pris le temps de m'aider. Votre script (que j'ai adapté pour mon cas) fonctionne impéc !!!!! Merci beaucoup ;). Bonne journée. Mathieu.
Le dimanche 01 Janvier 2017 à 15:05 par MichD :
> Bonjour,
>
>
> '-------------------------------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim PremierMot As String
> Dim DernierMot As String
>
> PremierMot = "toto"
> DernierMot = "titi"
>
> With Worksheets("Feuil1") 'Nom de la feuille à adapter
> Set Rg = .Cells.Find(what:=PremierMot, LookIn:=xlValues, lookat:=xlWhole)
> Set Rg1 = .Cells.Find(what:ÞrnierMot, LookIn:=xlValues, lookat:=xlWhole)
> If Not Rg Is Nothing And Not Rg1 Is Nothing Then
> 'Efface les données et les formats de cellules
> .Range(Rg, Rg1).Clear
> 'Supprime la plage de cellules
> '.Range(Rg, Rg1).Delete shift:=xlUp ' OU xlToLeft
> End If
> End With
> End Sub
> '-------------------------------------------------------
>
> MichD
>
>
>
>
> "Mathieu38G" a écrit dans le message de groupe de discussion
> :
>
>
> Bonjour,
>
> Existe-t-il une commande permettant de sélectionner toutes les lignes
> d'un
> tableau situées entre "telle cellule contenant mot X" et
> "telle cellule
> contenant mot Y" ?
>
> En fait j'ai besoin dans un tableau de supprimer toujours les mêmes
> lignes
> contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est
> que
> dans certains cas, il y a des lignes supplémentaires qui se trouvent
> alors sur
> une ligne prévue pour être supprimée.
>
> Es-ce que quelqu'un peut m'aider ?
>
> Merci beaucoup par avance.
>
>
> Mathieu.
Bonjour et merci beaucoup pour avoir pris le temps de m'aider.
Votre script (que j'ai adapté pour mon cas) fonctionne impéc !!!!! Merci beaucoup ;).
Bonne journée.
Mathieu.
Bonjour, '------------------------------------------------------- Sub test() Dim Rg As Range, Rg1 As Range Dim PremierMot As String Dim DernierMot As String PremierMot = "toto" DernierMot = "titi" With Worksheets("Feuil1") 'Nom de la feuille à adapter Set Rg = .Cells.Find(what:=PremierMot, LookIn:=xlValues, lookat:=xlWhole) Set Rg1 = .Cells.Find(what:ÞrnierMot, LookIn:=xlValues, lookat:=xlWhole) If Not Rg Is Nothing And Not Rg1 Is Nothing Then 'Efface les données et les formats de cellules .Range(Rg, Rg1).Clear 'Supprime la plage de cellules '.Range(Rg, Rg1).Delete shift:=xlUp ' OU xlToLeft End If End With End Sub '------------------------------------------------------- MichD "Mathieu38G" a écrit dans le message de groupe de discussion : Bonjour, Existe-t-il une commande permettant de sélectionner toutes les lignes d'un tableau situées entre "telle cellule contenant mot X" et "telle cellule contenant mot Y" ? En fait j'ai besoin dans un tableau de supprimer toujours les mêmes lignes contenant des valeurs qui ne m'intéressent pas. Seulement le souci c'est que dans certains cas, il y a des lignes supplémentaires qui se trouvent alors sur une ligne prévue pour être supprimée. Es-ce que quelqu'un peut m'aider ? Merci beaucoup par avance. Mathieu.
Bonjour et merci beaucoup pour avoir pris le temps de m'aider. Votre script (que j'ai adapté pour mon cas) fonctionne impéc !!!!! Merci beaucoup ;). Bonne journée. Mathieu.