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 -
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 ?
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:
- Excel/macro Rechercher puis copier dans une autre feuille
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Comment copier une vidéo youtube - Guide
6 réponses
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
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
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.
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.
Bonjour
"Omelli" et "Boucle": m^me personne ?
https://forums.commentcamarche.net/forum/affich-27964427-souci-avec-une-macro#p27964531
"Omelli" et "Boucle": m^me personne ?
https://forums.commentcamarche.net/forum/affich-27964427-souci-avec-une-macro#p27964531
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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
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
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
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
C'est colonne ou ligne ou ailleurs car ca ne correspond pas à ta pièces jointe....
et que tu retranscris toujours en B2 l'action et en A2 l'heure