Fonction recherche et copier/coller

Fermé
Florian.G - Modifié par Florian.G le 6/02/2017 à 11:55
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 8 févr. 2017 à 07:22
Bonjour,

Actuellement, je travaille dans une société qui me demande de traiter certaines informations. J'ai du faire un tableau de 7 colonnes et à peu près 467 lignes... Mon problème est le suivant:

Je n'arrive pas à faire une recherche et dès qu'il trouve, copier/coller ce qu'il a trouver dans une autre feuille dans des cases bien précises. Prenons un exemple:

200H / ADD-200H / MR / tâches / 25-66-66 / 25 / 06-23-02
Cela représente un exemple de mes nombreuses lignes sur mes 6 colonnes. (Les slashs délimitent les différentes colonnes).

Si je me suis mal exprimer, dite-le moi pour que je vous explique en mieux mon besoin.

Cordialement, Florian.

A voir également:

6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/02/2017 à 11:59
Bonjour

Je n'arrive pas à faire une recherche
une recherche à partir de quelle donnée ?

dans des cases bien précises
lesquelles ?

Merci de faire l'effort d'^tre précis dans vos demandes....
 Michel
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
6 févr. 2017 à 11:59
Bonjour,

Le critere de recherche est dans quelle colonne, il est en plusieurs position dans la colonne et il tombe du ciel ou ....?
0
Merci de me porter de l'importance à me répondre et désolé d'être imprécis mais je débute intégralement à VBA donc bon...

J'aimerais effectuer une recherche dans tout mon tableau de 467 lignes. Une fois qu'il a trouvé la valeur "X" dans la troisième colonne, il l'a copie et l'a colle dans un autre classeur "Classeur1" (admettons pour le nom)

J'espère que j'ai été assez clair et compris dans mes explications...
0
Grannec.F Messages postés 7 Date d'inscription lundi 6 février 2017 Statut Membre Dernière intervention 7 février 2017
7 févr. 2017 à 09:23
Bonjour,

tout d'abord merci pour vos réponses et votre attention. Je me suis mal expliqué je vais remettre au clair mon problème:

j'ai une base de donnée qui se présente sur 7 colonnes qui s'appellent, dans cet ordre: operation code, parent task code, task code, task, Ref, ATA, CHAP.
Donc 7 colonnes et à peu près 500 lignes.

J'ai mis en place une gestion de la bases de données (créer, modifier, supprimer une ligne) sous VBA.

Je souhaite maintenant avoir la possibilité d'effectuer la copie des lignes qui ont le même "operation code" (à savoir qu'elles ne se trouvent pas forcément dans l'ordre dans la base de données) après avoir coché une checkbox (qui correspond a cette operation) et de coller ces lignes sur une feuille vierge d'excel (qui existera déjà). Il faudrait que les lignes se posent les unes après les autres dans l'ordre, à chaque fois qu'elles se collent à la dernière ligne non vide.

voila la ligne de code que j'ai commencé a faire mais elle ne marche pas comme je voudrais:

Dim M As Integer
If CheckBox28.Value = True Then
For M = 1 To 1000
If Cells(M, "B") = "A109E-INSP-7D" Then
Cells(M, "D").Select
Selection.Copy
Cells(M, "D").Select
ActiveSheet.Paste
End If
Next M
End If
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/02/2017 à 15:53
il l'a copie et l'a colle dans un autre classeur "Classeur1" (admettons pour le nom)
Où dans la classeur1 ?

je débute intégralement à VBA donc bon...

ca n'a rien à voir
quand tu as à réaliser une appli, l'erreur est de se précipiter sur l'ordi et commence à écrire des lignes ou essayer avec l'enregistreur de macro
1° étape: analyser le problème (sur papier si compliqué)
vieux proverbe: "un pb bien posé est à moitié résolu"
au besoin, poser des questions sur les imprécisions

2° étape:une fois les réponses obtenues, faire valider le système voulu par le client

3° étape: évaluer les solutions possibles et écrire ce qui parait être la solution optimum

tel que tu décris ton pb, je me dis que ca a été rédigé en "vite fait-mal fait" et j'ai tendance à zapper


 Michel
-1
HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017 2
Modifié par HugoHerbomez le 6/02/2017 à 16:04
Bonjour la communauté !

Voici mon élément de réponse pour ton problème :

'Dans le classeur 1
Dim i As Integer
i=1

While x <> Range (" C " & i & "").Value
    i = i + 1
Wend

Range("C " & i & "").EntireRow.Copy
'Ou si j'ai bien compris comme il y a 7 colonnes ce sera plus
Range("A" & i & " : G " & i & "").Copy

Workbooks("Classeur2").Worksheets("Feuil1").Range("A69").Paste


ça te va? :D
Bien cordialement,
Hugo
-1
HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017 2
6 févr. 2017 à 16:53
Je sais pas qui est le babache qui m'a mis '-1' sans même de commentaire mais tu peux regarder ma réponse quand même ^^
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702 > HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017
6 févr. 2017 à 17:13
Bonjour,

Je sais pas qui est le babache qui m'a mis '-1'
Moi non plus, mais la question n'est pas la.

Vous avez teste le code que vous avez mis a dispo ?
0
HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017 2
Modifié par HugoHerbomez le 7/02/2017 à 08:50
Bonjour f !

Non mais la bonne intention y est, et à peu de chose prêt il devrait fonctionner, je ne vois pas ce qu'il y a de faux dans ce que j'ai écris. Si mon code est faux, il peut s'en inspirer, si il est faux, il peut l'ignorer, si il est bon tant mieux pour lui!

Il ne faut pas chercher à se compliquer la vie, c'est aussi simple que ça. Nous ne sommes pas dans un compte rendu d'entreprise mais dans un site Web qui permet aux internautes de s'entre-aider et je suis en train de le faire.

Bonne journée, cette discussion est clause pour moi.

PS : Je reproche juste à la personne m'ayant mis un '-1' de ne pas s'être expliqué, sinon je ne vois pas l'utilité. je l'aurais fait pour une personne, afin de l'aider à s'améliorer.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702 > HugoHerbomez Messages postés 57 Date d'inscription dimanche 15 juillet 2012 Statut Membre Dernière intervention 2 mars 2017
7 févr. 2017 à 10:02
Bonjour,

juste pour vous
Non mais la bonne intention y est,

testez votre code et celui-ci en ajoutant le temps d'execution pour une valeur situee ligne 450 sur 470
Sub test()
    'Dans le classeur 1
    Dim lig As Long, Nb As Long
    With Worksheets("feuil1")
        ValX = .Range("B1")     'valeur a chercher
        Nb = Application.CountIf(.Columns(3), ValX) 'Nombre de fois la valeur
        If Nb > 0 Then      'si au moins 1 ok
            lig = 2     ' ligne de depart
            lig = .Columns.Find(ValX, .Cells(lig, 3), , xlWhole).Row    'recherche pour avoir la ligne
            .Range("A" & lig).Resize(, 7).Copy Workbooks("Classeur2").Worksheets("Feuil1").Range("A69")     'copie
        Else
            MsgBox "Attention: pas trouvee " & ValX & "!"
        End If
    End With
End Sub
0
Grannec.F Messages postés 7 Date d'inscription lundi 6 février 2017 Statut Membre Dernière intervention 7 février 2017 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
7 févr. 2017 à 10:24
Bonjour,

le code est destiné à HugoHerbomez? J'ai exposé mon problème plus clairement un peu plus haut, pourriez vous m'aider s'il vous plais ?
0