Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

YannLC

XLDnaute Junior
Hi le FORUM,

J ai un tableau composé de plusieurs colonnes et celon une colonne comportant des noms je souhaite selectionner la totalité dechaque ligne comportant du text ( un nom ) dans ma colonne en question, comment faire ?

exemple :

CLIENT DATE NOM DU VENDEUR
124 C 02/2006 VALERIE
223 B 03/2006
635 C 04/2006 STEPH
638 A 04/2006
425 C 04/2006 PATRIK

Je cherche donc a selectionner

CLIENT DATE NOM DU VENDEUR
124 C 02/2006 VALERIE
635 C 04/2006 STEPH
425 C 04/2006 PATRIK

et a le mettre dans un autre sheet ???

Sinon comment je peux mettre en lien une partie ( il est tres gros :25 colonnes sur 10000 lignes) de mon fichier ?

Merci d'avance.
 

Hellboy

XLDnaute Accro
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

Bonjour

Une suggestion:

Public Sub Test()
Dim intLigne As Integer
For intLigne = 2 To Cells.SpecialCells(xlCellTypeLastCell).Row Step 2
With Range(Cells(intLigne, 1), Cells(intLigne, 3))
.Copy Destination:=Sheets(2).Cells(Cells.End(xlUp).Row + 1, 1)
' si tu veux effacer les données
' .Clear
End With
Next intLigne
End Sub
 

porcinet82

XLDnaute Barbatruc
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

Salut Yann,

Tout d'abord pour mettre ton fichier en pièce jointe, il te suffit d'en mettre qu'une partie (5 colonnes et 50 lignes devrait largement suffire).

Ensuite pour ton problème, est ce qu'un simple filtre ne pourrait pas faire l'affaire? (Données/Filtre/Filtre automatique)
Ensuite tu copies/colles tes données dans la feuille souhaitées. A moins que tu ne veuilles faire tout ca par vba, là effecivement ton fichier sera necessaire avec quelques explications afin que l'on puisse directement adapter.

@+

Edition : Salut Hellboy, pas rafraichit...
 

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

Merci pour vos premieres reponses :

Voici ma P J :
 

Pièces jointes

  • BASE EXCELLDOWNLOAD.xls
    18 KB · Affichages: 135
  • BASE EXCELLDOWNLOAD.xls
    18 KB · Affichages: 147
  • BASE EXCELLDOWNLOAD.xls
    18 KB · Affichages: 147

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

Hellboy à dit:
Bonjour

Une suggestion:

Public Sub Test()
Dim intLigne As Integer
For intLigne = 2 To Cells.SpecialCells(xlCellTypeLastCell).Row Step 2
With Range(Cells(intLigne, 1), Cells(intLigne, 3))
.Copy Destination:=Sheets(2).Cells(Cells.End(xlUp).Row + 1, 1)
' si tu veux effacer les données
' .Clear
End With
Next intLigne
End Sub

Mais comment faire lorsque j ai 10000 ligne ????
 

porcinet82

XLDnaute Barbatruc
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

re,

Comme je ne suis pas sur que la macro de Hellboy focntionne comme tu le souhaites (je suppose q'on a pas compris la meme chose en ce qui concerne ta demande), j'ai modifier son code de la manière suivante :
PHP:
Sub Test()
Dim intLigne As Integer
If Selection.Count > 1 Then MsgBox "Selectionnez une seule cellule": Exit Sub
For intLigne = 2 To Range("A65536").End(xlUp).Row
    If Cells(intLigne, 5).Value = Selection.Value Then
        Cells(intLigne, 1).EntireRow.Copy Destination:=Sheets(2).Cells(Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
    End If
Next intLigne
End Sub

La macro copie toutes les lignes identiques a la cellule sélectionnée.

@+
 

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

porcinet82 à dit:
re,

Comme je ne suis pas sur que la macro de Hellboy focntionne comme tu le souhaites (je suppose q'on a pas compris la meme chose en ce qui concerne ta demande), j'ai modifier son code de la manière suivante :
PHP:
Sub Test()
Dim intLigne As Integer
If Selection.Count > 1 Then MsgBox "Selectionnez une seule cellule": Exit Sub
For intLigne = 2 To Range("A65536").End(xlUp).Row
    If Cells(intLigne, 5).Value = Selection.Value Then
        Cells(intLigne, 1).EntireRow.Copy Destination:=Sheets(2).Cells(Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
    End If
Next intLigne
End Sub

La macro copie toutes les lignes identiques a la cellule sélectionnée.

@+

Je n ai pas trop de niveau en VBA et je ne peux pas indiquer que je veux selectionner les cellules non vide ???? de la plage, avec selection de plage automatique qui ne va pas jusqu en bas d escel ?

Je test ca au boulot demain, ma vie en depend !!!!
 

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

j ai ajouté ton VBA dans mon fichier attaché plus haut et ca bug ????
 

Pièces jointes

  • BASE EXCELLDOWNLOAD.xls
    31.5 KB · Affichages: 113
  • BASE EXCELLDOWNLOAD.xls
    31.5 KB · Affichages: 119
  • BASE EXCELLDOWNLOAD.xls
    31.5 KB · Affichages: 118

porcinet82

XLDnaute Barbatruc
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

re,

Je viens de regarder ton fichier, normal que ca bug, la première ligne de ta macro (Sub macro 1()) est en commenaire, c'est à dire 'Sub macro1 ()

Il te suffit d'enlever l'apostrophe et ca doit fonctionner.

@+
 

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

porcinet82 à dit:
re,

Je viens de regarder ton fichier, normal que ca bug, la première ligne de ta macro (Sub macro 1()) est en commenaire, c'est à dire 'Sub macro1 ()

Il te suffit d'enlever l'apostrophe et ca doit fonctionner.

@+

Parfois ca marche parfois ca ne marche pas !!!

Si je selectionne dans la colonne sales primo carlo cela selectionne tout !!!

Bizar je vais regarder, mais que je te l ai dis je suis light en VBA, mais j apprends !!!

Merci !
 

porcinet82

XLDnaute Barbatruc
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

Salut Yann,

Effectivement, le code n'etait pas adapter a toutes les possibilités, je l'ai modifié :
PHP:
Sub Test_v3()
Dim intLigne As Integer
Sheets(1).Select
If Selection.Count > 1 Then MsgBox "Selectionnez une seule cellule": Exit Sub
For intLigne = 2 To Range("A65536").End(xlUp).Row
    If Cells(intLigne, Selection.Column).Value = Selection.Value Then
        Cells(intLigne, 1).EntireRow.Copy Destination:=Sheets(2).Cells(Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
    End If
Next intLigne
End Sub

@+
 

Hellboy

XLDnaute Accro
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

re a tous

La je ne comprend pas. D'après ton Post original, tu voulais copié une ligne sur deux. C'est ce que j'en ai déduit. Si tu as 10000 lignes, je ne pensais pas que tu voulais les sélectionner à la main. pour ensuite faire le copier coller de cette sélection ?

Je suis dans le brouillard la :)
 
Dernière édition:

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

Hellboy à dit:
re a tous

La je ne comprend pas. D'après ton Post original, tu voulais copié une ligne sur deux. C'est ce que j'en ai déduit. Si tu as 10000 lignes, je ne pensais pas que tu voulais les sélectionner à la main. pour ensuite faire le copier coller de cette sélection ?

Je suis dans le brouillard la :)

Hi Hellboy,

Le fichier en copie t aidera surement a comprendre, et ce que je veux faire sur ce fichier c est selection toutes les lignes qui comportent une nom de sales .... ou alors, d'une facon plus general, sur mon grand fichier, je veux selectionner toute les lignes correspondant a toutes les cellules non vide de la colonnes choisie, avec ces meme cellule, c'est une extraction partiel de fichier !!!

A Plus
 

YannLC

XLDnaute Junior
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

porcinet82 à dit:
Salut Yann,

Effectivement, le code n'etait pas adapter a toutes les possibilités, je l'ai modifié :
PHP:
Sub Test_v3()
Dim intLigne As Integer
Sheets(1).Select
If Selection.Count > 1 Then MsgBox "Selectionnez une seule cellule": Exit Sub
For intLigne = 2 To Range("A65536").End(xlUp).Row
    If Cells(intLigne, Selection.Column).Value = Selection.Value Then
        Cells(intLigne, 1).EntireRow.Copy Destination:=Sheets(2).Cells(Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
    End If
Next intLigne
End Sub

@+

En effet cela marche !!!

Cependant comment puis je modifier cette macro pour lui dire : "selectionner toute les cellules non vides de cette colonne" a la place de :" selectionner les lignes de la cellule qui comporte la cellule selectionnée" comme tu as fais dans ton exemple ?

A plus et encore merci !!!
 

porcinet82

XLDnaute Barbatruc
Re : Selectionner Une Plage En Vba Mais Que Certaine Ligne !!!

re,

Pas testé, mais je dirais quelque chose de ce genre :
PHP:
Sub Test_v4()
Dim intLigne As Integer
Sheets(1).Select
If Selection.Count > 1 Then MsgBox "Selectionnez une seule cellule": Exit Sub
For intLigne = 2 To Range("A65536").End(xlUp).Row
    If Not Cells(intLigne, Selection.Column).Value = "" Then
        Cells(intLigne, 1).EntireRow.Copy Destination:=Sheets(2).Cells(Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
    End If
Next intLigne
End Sub

@+