extraire les lignes entre deux cellules definies

IAGO

XLDnaute Nouveau
Bonjour à toutes et à tous :)
je cherche le moyen d'extraire toutes les lignes d'une feuille qui sont comprises entre deux cellules dont le texte est "Display ID"

en exemple :
de la ligne 1 à 4 : j'ai différentes valeurs qui ne me servent pas
en ligne 5 : colonne A : j'ai ma valeur "Display ID"
puis de la ligne 6 à la ligne x : j'ai touts les valeurs que je veux récupérer
en ligne x+1 colonne A : j'ai ma valeur "Display ID"
puis ligne x+2 à ligne x+y : j'ai différentes valeurs qui ne me servent pas

Sachant la première partie ligne 1 à 4 peut varier également.

je tente de faire une macro mais comme je débute j'ai beaucoup de mal.... :p

Merci
 

mutzik

XLDnaute Barbatruc
Re : extraire les lignes entre deux cellules definies

bonjour,

envoie nous un bout de ton fichier, qu'on ne travaille pas trop dans le vide
sinon, tu veux supprimer toutes les lignes 'inutiles' oou copier les lignes qui te servent sur une autre feuille, dans le presse-papier, dans un nouveau classeur ?
 

IAGO

XLDnaute Nouveau
Re : extraire les lignes entre deux cellules definies

re-bonjour,
tout d'abord je vous remercie de vous pencher sur mon problème

(au début je le faisais manuellement, mais avec la fréquence et la taille croissante des lignes... :( )

Pour le fichier, je n'ai pas la possibilité d'envoyer ou de recevoir de pièce jointe à mon bureau, je vais essayer d'être au plus clair.


1) un import est effectué via un logiciel spécifique, qui génére un csv
2) dans ce fichier je veux récuperer toutes les lignes qui sont comprises entre deux cellules de la colonne A(n) et A(n+x) dont le contenu est "Display ID"
3)Ces informations une fois extraite sont utilisées pour la création de graphique etc...

J'ai essayé de mettre mon fichier en pièce jointe mais le pare feu du bureau refuse, j'ai réussi à la faire avec un jpg...
--> en vert : mes deux cellules références, avant et aprés la zone à selectionner (encadrée en rouge )

Merci
 

Pièces jointes

  • ligne.jpg
    ligne.jpg
    57.1 KB · Affichages: 61

jeanpierre

Nous a quitté
Repose en paix
Re : extraire les lignes entre deux cellules definies

Bonjour IAGO, Bertrand,

Bertrand étant déconnecté...

Le code de Bertrand :

Option Explicit
Sub supplignes()
Dim i, deb, fin, colfin
colfin = Range("a65536").End(xlUp).Row
For i = 1 To colfin
If Range("A" & i) = "Display ID" Then deb = i: i = colfin
Next i
For i = deb + 1 To colfin
If Range("A" & i) = "Display ID" Then fin = i: i = colfin
Next i
For i = colfin To fin Step -1
Rows(i).Delete
Next i
For i = deb To 1 Step -1
Rows(i).Delete
Next i
End Sub

Clic droit sur l'onglet de ta feuille/Visualiser le code et tu colles cela.

Si cela peut t'avancer.

Bon après-midi.

Jean-Pierre

Désolé, peux pas mettre les balises, indisponible en Réponse Rapide.
 

mutzik

XLDnaute Barbatruc
Re : extraire les lignes entre deux cellules definies

Bonjour Iago,

NB :écrire en majuscule équivaut à crier, or je ne crois pas que nous ayons mérité cela
sinon, sans un bout de ton fichier, on ne pourra (moi en tout cas) pas en faire beaucoup plus
une piste cependant, ou as-tu placé le code de la macro ?

NB, j'ai revérifié mon fichier et ma macro, elle tourne sans blem
 

IAGO

XLDnaute Nouveau
Re : extraire les lignes entre deux cellules definies

Pour répondre à votre question,
j'ai tenté de placer la macro dans la feuille et aussi dans un module.
et l'execution à partir d'un bouton...
merci, et encore milles excuses pour mes 'MAJUSCULES'
 

bonsouarmessieux

XLDnaute Junior
Re : extraire les lignes entre deux cellules definies

Salut!
Si tu veux un code un peu plus intuitif pour trouver les numéros des lignes où il est écrit "Display ID":
Sub DisplayID()
'Initialise les variables LigneTop et LigneDown
LigneTop = 0
LigneDown = 0

'Cherche le No de la première et de la dernière ligne "Display"
For i = 1 To 10000
If Cells(i, 1) = "Display ID" Then
If LigneTop = 0 Then
LigneTop = i
Else
LigneDown = i
End If
End If
Next
MsgBox "LigneTop: " & LigneTop
MsgBox "LigneDown: " & LigneDown
End Sub

Tu peux mettre ce code dans un module et l'exécuter directement par:
Alt+F8 puis "DisplayID" et exécuter
J'espère que ça répondra à tes attentes
 

pierrejean

XLDnaute Barbatruc
Re : extraire les lignes entre deux cellules definies

bonjour a tous

petit exercice avec Find

Code:
Sub extait()
With Worksheets("Feuil1").Range("a:a")
    Set c = .Find("Display ID", LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
         adresses = adresses & c.Address(0, 0) & ":"
         n = n + 1
         Set c = .FindNext(c)
        Loop While n < 2
    End If
End With
ad = Left(adresses, Len(adresses) - 1)
linh = Range(ad).Row + 1
linb = linh + Range(ad).Rows.Count - 3
ActiveSheet.Rows(linh & ":" & linb).Copy Destination:=[COLOR=red]Sheets("Feuil2").Range("A1")
[/COLOR]End Sub

en rouge : a adapter pour la feuille de reception de l'extraction
 

IAGO

XLDnaute Nouveau
Re : extraire les lignes entre deux cellules definies

Bonjour
merci ça marche trés bien!

j'utilisais ce matin
Sub supplignes()
Dim i, deb, fin, colfin
colfin = Range("a65536").End(xlUp).Row
For i = 1 To colfin
If Range("A" & i) = "Display ID" Then deb = i: i = colfin
Next i
For i = deb + 1 To colfin
If Range("A" & i) = "Display ID" Then fin = i: i = colfin
Next i
Rows(fin & ":" & colfin).Delete
Rows("1:" & deb).Delete
End Sub

mais la solution de Pierre est idéal!
Merci encore
 

Discussions similaires

Réponses
6
Affichages
142
Réponses
22
Affichages
787

Statistiques des forums

Discussions
312 299
Messages
2 086 990
Membres
103 420
dernier inscrit
eric.wallet46