Excel/macro Rechercher puis copier dans une autre feuille

Omelli Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
Omelli Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais créer une macro qui, dans une première feuille (de 2 colonnes par exemple), rechercherait une valeur, puis la sélectionnerait et la copierait vers une deuxième feuille.
Mais aussi que la macro sélectionne la valeur (qui n'est jamais la même) qui se trouve
sur la même ligne que la valeur recherchée, dans la colonne à côté et la copie/colle dans cette deuxième feuille.


Je suis débutante en VBA, j'ai tâtonné avec l'enregistreur de macro, puis avec les codes
proposés sur les forums pour résoudre des soucis similaires aux miens, mais je n'y arrive
toujours pas.

Sauriez-vous à à quoi pourrait ressembler ce code ?

A voir également:

6 réponses

rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Tu peux aussi faire cette macro :-)

Sub WriteAction()

Application.ScreenUpdating = False

Set ma_feuille = ThisWorkbook.Sheets(1)
col_no = 3 'C
lg_no = 2 '2
flag_trouve = False

Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
If (ma_feuille.Cells(lg_no, col_no).Value = "Départ du cross") Then
Sheets(2).Range("A1000").End(xlUp)(2) = ma_feuille.Range("B" & lg_no).Value
ma_feuille.Range("C" & lg_no).Copy Sheets(2).Range("B1000").End(xlUp)(2)
flag_trouve = True
Exit Do
End If
lg_no = lg_no + 1
Loop
If (flag_trouve = False) Then
MsgBox (strName & " :" & "Non trouvé !")
End If

Application.ScreenUpdating = True

End Sub
5
Omelli Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci beaucoup ! Par contre au lancement de la macro, une erreur "Compile error, variable not defined apparaît", je ne vois pas comment résoudre le problème (eh oui je suis un gros boulet en VBA)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
Je cherche dans la feuille 1 l'action "Départ du cross", or je ne connais pas le numéro de colonne ou de cellule dans lesquelles elle se trouve. Alors la macro recherche cette action dans la feuille, la sélectionne et la copie dans la colonne Action de la feuille 2.

C'est colonne ou ligne ou ailleurs car ca ne correspond pas à ta pièces jointe....
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
si "départ du cross" est "ailleurs" dans la feuil1 et que tu retrancris uniquement "départ du cross"
et que tu retranscris toujours en B2 l'action et en A2 l'heure
Option Explicit

Sub retrancrire()
Dim cellule As Range, heure As Date

With Sheets(1)
     Set cellule = .Cells.Find("Départ du cross")
     heure = cellule.Offset(0, -1)
End With

With Sheets(2)
     .Range("B2") = cellule
     .Range("A2") = heure
     .Range("A2").NumberFormat = "[h]:mm:ss;@"
End With

End Sub
0
Omelli Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
C'est bon ! Ca marche ! Le code de rEVOLV3r marche très bien !
Il suffisait juste que je définisse les variables avec Dim ... As :)

Je continue de chercher pour copier la cellule à côté.

Je vais réessayer avec le code de michel_m maintenant.
1
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
Bonjour,

pour être efficace:

combien de lignes
type des valeurs: nombre, texte ,

ou mieux si possible:
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

0

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

Posez votre question
Omelli Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Voici ma pièce jointe : https://www.cjoint.com/?0FhjRKQZLG7

J'ai détaillé mon explication dans la feuille 2, en espérant que c'est compréhensible.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
Ton pb se résout par formule mais
comme Je comprend mal ce que tu veux faire, alors j'ai pris le cas général avec une macro paramétrée: tu choisis une action et elle copiée dans la première ligne vide de la feuille avec à gauche l'heure

Option Explicit

Sub trancrire_action()
     ecrire "Départ du cross"
End Sub
'---------------------
Sub ecrire(texto)
Dim Ligne  As Integer, Heure As Date, Ligvide As Integer
With Sheets(1)
     Ligne = .Columns("C").Find(texto, .Range("C1"), xlValues).Row
     Heure = .Cells(Ligne, "B")
End With
With Sheets(2)
     Ligvide = .Columns("B").Find("", .Range("B1")).Row
     .Cells(Ligvide, "B") = texto
     .Cells(Ligvide, "A") = Heure
     .Cells(Ligvide, "A").NumberFormat = "h:mm:ss;@"
End With
End Sub


0
Omelli Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci pour votre aide Michel, je vais essayer le code.
Si ça peut vous aider, je peux essayer de reformuler mon problème :
Je cherche dans la feuille 1 l'action "Départ du cross", or je ne connais pas le numéro de colonne ou de cellule dans lesquelles elle se trouve. Alors la macro recherche cette action dans la feuille, la sélectionne et la copie dans la colonne Action de la feuille 2.
Mais j'ai également besoin qu'elle copie le temps correspondant à l'action "Depart du cross", mais je sais que la colonne Action est toujours à droite de la colonne Temps. Donc la macro sélectionnerait la cellule à gauche de la cellule "depart du cross" et la copie/colle aussi dans la feuille 2, dans la colonne Temps...

Désolée de ne pas pouvoir être plus claire
0