Recherche de données par colonne

rico59_59

XLDnaute Nouveau
Bonjour,

Voila j'aimerais savoir comment procéder en VB pour faire ceci :

dans un tableau exemple avec des colonnes de A --> Z et des lignes de 1 --> 10 et des données à l'intérieur.

--> Faire une recherche sur la colonne I(avec une entête) d'une certaine valeur X et si x= à ma valeur recherchée sélectionner et copier la ligne contenant X en entiére dans un autre onglet ?

Je sais que l'on pourrait faire cela avec la fonction "Filtre automatique" mais j'ai besoin de savoir faire cela de maniére automatique en code VB !!

Merci de m'indiquer quelle est la meilleur façon de procéder ?

Merci d'avance !!

PS: Petit Fichier joint regardé la colonne I dans l'onglet CLIENTS et copier les lignes dans l'onglet résultat "

Rico
 

Pièces jointes

  • Classeur1.xls
    31.5 KB · Affichages: 80
  • Classeur1.xls
    31.5 KB · Affichages: 75
  • Classeur1.xls
    31.5 KB · Affichages: 79
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Recherche de données par colonne

Bonjour rico59_59, ROGER2327,
J'ai fait un petit exemple à adapter:
Code:
Sub test2()
Dim Derligne As Long
Dim Derligne2 As Long
Derligne = Sheets("feuil1").Range("A" & Application.Rows.Count).End(xlUp).Row
For i = 2 To Derligne
    If Sheets("feuil1").Cells(i, 1).Value = "Toto" Then
        Derligne2 = Sheets("feuil2").Range("A" & Application.Rows.Count).End(xlUp).Row + 1
        Sheets("feuil1").Cells(i, 1).EntireRow.Copy
         Sheets("feuil2").Rows(Derligne2 & ":" & Derligne2).Insert Shift:=xlDown
    End If
Next i
End Sub
Mais il est bien évident qu'avec un petit fichier, ce serait mieux, mais nous nous répétons...
Cordialement
 

rico59_59

XLDnaute Nouveau
Re : Recherche de données par colonne

Bonjour rico59_59, ROGER2327,
J'ai fait un petit exemple à adapter:
Code:
Sub test2()
Dim Derligne As Long
Dim Derligne2 As Long
Derligne = Sheets("feuil1").Range("A" & Application.Rows.Count).End(xlUp).Row
For i = 2 To Derligne
    If Sheets("feuil1").Cells(i, 1).Value = "Toto" Then
        Derligne2 = Sheets("feuil2").Range("A" & Application.Rows.Count).End(xlUp).Row + 1
        Sheets("feuil1").Cells(i, 1).EntireRow.Copy
         Sheets("feuil2").Rows(Derligne2 & ":" & Derligne2).Insert Shift:=xlDown
    End If
Next i
End Sub
Mais il est bien évident qu'avec un petit fichier, ce serait mieux, mais nous nous répétons...
Cordialement

Merci de vos réponses, j'ai joins un petit fichier pour que cela soit plus clair !

@+

Rico
 

ROGER2327

XLDnaute Barbatruc
Re : Recherche de données par colonne

Bonsoir à tous
Un essai :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim oCel As Range, i, x
   x = Columns(Target.Column).Cells(1, 1).Value
   If Columns(Target.Column).Cells(1, 1).Value = "entete 9" Then
      Cancel = True
      With Sheets("Résultat")
         .Cells.ClearContents
         For Each oCel In Columns(Target.Column).SpecialCells(xlCellTypeConstants)
            If oCel.Value = Target.Value Then
               i = i + 1
               Rows(Target.Row).Copy Destination:=.Rows(i)
            End If
         Next oCel
      End With
   End If
End Sub[/B][/COLOR]
Voyez le classeur joint pour la mise en œuvre.​
ROGER2327
#2890
 

Pièces jointes

  • Temp.zip
    15.4 KB · Affichages: 51
  • Temp.zip
    15.4 KB · Affichages: 48
  • Temp.zip
    15.4 KB · Affichages: 50

lexpatrier

XLDnaute Nouveau
Re : Recherche de données par colonne

:)bonjour membre du forum,

je me permets d'intervenir sur votre discussion car votre probleme se rapproche grandement de ce que j'essaie de faire.

j'ai essaye d'adapter la macro de Roger 2327 ci dessus sans succes a mon fichier

j'ai une discussion ouverte avec un exemple sous le nom de Lexpatrier.
j'ai besoin de pouvoir extraire sur une autre feuillet les noms de la colonne L

Si Roger2327 peut me donne run coup de pouce ce serait super sympa.

Merci pour votre attention a tous
 

rico59_59

XLDnaute Nouveau
Re : Recherche de données par colonne

Bonsoir à tous
Un essai :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim oCel As Range, i, x
   x = Columns(Target.Column).Cells(1, 1).Value
   If Columns(Target.Column).Cells(1, 1).Value = "entete 9" Then
      Cancel = True
      With Sheets("Résultat")
         .Cells.ClearContents
         For Each oCel In Columns(Target.Column).SpecialCells(xlCellTypeConstants)
            If oCel.Value = Target.Value Then
               i = i + 1
               Rows(Target.Row).Copy Destination:=.Rows(i)
            End If
         Next oCel
      End With
   End If
End Sub[/B][/COLOR]
Voyez le classeur joint pour la mise en œuvre.​
ROGER2327
#2890

Merci roger c'est vraiment pas mal ta macro !!:)
Par contre est ce que cela serait possible de pouvoir par exemple lors de l'ouverture de mon fichier excel créé une zone de recherche (insertion d'une ligne A) avec en positionnement sur cell A1 afin d'y entrer ma zone de recherche avec juste à coté un bouton pour valdier /exécuter le recherche toujours dans le même type de selection à partir d'une valeur de la colonne i et copier toutes les lignes trouvées vers l'onglet recherche ? Et derriere pouvoir recommercer la recherche sur une autre valeur de la colonne i ?
Je suis un petit débutant et j'ai fait une macro avec un userform j'arrive à copier coller avec la valeur entrée j'ai fait cela avec l'enregistement automatique de macro d'excel et j'ai modifier quelque lignes de code mais je trouve pas cela trés intuitif (trop lourd en visu).

J'aimerai une macro silencieuse!! :D

Merci de ton aide.

Rico

PS:le ficher d'origine est toujours celui mis à disposition.
 

Efgé

XLDnaute Barbatruc
Re : Recherche de données par colonne

Bonjour à tous,
rico59_59, voici un exemple, en double cliquant sur une cellule en colonne I de la feuille CLIENTS les lignes correspondantes sont copiées sur la feuille résultat.
Pour voir le code : Click droit sur l'onglet CLIENTS et choisir "Visualiser le code".
En espérant avoir bien compris la demande.
Cordialement
 

Pièces jointes

  • Classeur1(2).zip
    15.9 KB · Affichages: 56
  • Classeur1(2).zip
    15.9 KB · Affichages: 58
  • Classeur1(2).zip
    15.9 KB · Affichages: 50

Efgé

XLDnaute Barbatruc
Re : Recherche de données par colonne

Re
Bonsoir ROGER2327,
Je pense (j"imagine ?) que rico59_59 voudrait insérer une ligne 1 pour pouvoir saisir en A1 le numéro du client à extraire, le susdit numéro se trouverais en "entete 9" colonne I.
Il est évident que cela reste une interprétation personnelle et que seul rico59_59 peut nous apporter les réponses ....
Très cordialement
 

rico59_59

XLDnaute Nouveau
Re : Recherche de données par colonne

Re
Bonsoir ROGER2327,
Je pense (j"imagine ?) que rico59_59 voudrait insérer une ligne 1 pour pouvoir saisir en A1 le numéro du client à extraire, le susdit numéro se trouverais en "entete 9" colonne I.
Il est évident que cela reste une interprétation personnelle et que seul rico59_59 peut nous apporter les réponses ....
Très cordialement

Oui merci Efgé !! Tu as compris j'ai effectivement fait une petite erreur dans ma demande il s'agit bien d'insérer une ligne 1 et de placer le code à rechercher dans la cell A1 !!ça je sais faire en vb lol quand même !! Désolé Roger2327 je ne m'était pas aperçu de l'horreur . Mais je ne veux pas du tout fais par vous mais bien des pistes à explorer pour pouvoir faire ce petit code en vb !! Est ce que la fonction recherchev peut être utiliser pour recherche ma valeur en A1 dans toute la colonne i afin d'en extraire toutes les lignes correspondantes à ma valeur entrée en A1 ?

Merci en tout cas de votre aide à tous les 2 !!

@+

Rico
 

rico59_59

XLDnaute Nouveau
Re : Recherche de données par colonne

Bonjour à tous,

Voila j'ai fait ma macro grâce à des morceaux de code glaner ici et la sur ce super forum .....:D Merci...... Je vous légge mon code car le partage c'est ma vrai philosophie ...

Si cela peut servir d'autres personnes je serais content. Bref c'est pas non plus la macro de l'année mais bon ça fonctionne comme je le voulais .

Maintenant comme il y a des pros je voulais juste demander pour ma culture perso si mon code peut être améliorer et si oui dans quel mesure je laisse bien sur le total accés sur mon code je n'ai pas mis de copyright .. LOL.
pour info:
J'aimerais dépersonnaliser le systéme d'onglets (je met en dur les noms de mes onglets dans mon code) s'il y a moyen et voir la fin de la procédure car en colonne B:B j'ai des format de colonne avec des cadres jusqu'en fin de colonne B !!J'ai pas encore eu le temps de voir comment supprimer ce cadrage ....

Merci en tout cas de votre aide de toujours : passée actuelle et avenir !!!

@+

Rico

PS: Le fichier perso.xls contenant ma macro je le place dans xlstart avant d'ouvrir le fichier classeur1.xls pour traitement .
 

Pièces jointes

  • macros_Excel.zip
    27.7 KB · Affichages: 52
Dernière édition:

Discussions similaires

Réponses
7
Affichages
444

Statistiques des forums

Discussions
312 683
Messages
2 090 910
Membres
104 693
dernier inscrit
azizou900