Macro copier-coller une cellule si une autre contient un mot
empereurtilleul
Messages postés
26
Statut
Membre
-
Le Pingou Messages postés 12275 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12275 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais créer une macro qui copie une cellule B dans une autre cellule A si la dernière cellule C contient un mot spécifique.
Je vous joint ce fichier: https://www.cjoint.com/c/LAdqTh8lr7G
Je souhaite une macro car mon fichier réel fait plusieurs centaines de lignes.
Merci d'avance
Je voudrais créer une macro qui copie une cellule B dans une autre cellule A si la dernière cellule C contient un mot spécifique.
Je vous joint ce fichier: https://www.cjoint.com/c/LAdqTh8lr7G
Je souhaite une macro car mon fichier réel fait plusieurs centaines de lignes.
Merci d'avance
Configuration: Windows / Firefox 91.0
14 réponses
-
Bonjour,
Pas besoin de macro, une simple formule en A2 que vous tirez vers le bas
Selon votre exemple: en A2=SI(C2="Orange";B2;"")
-
Bonjour,
En amont de cette fonction, je copie colle des données en A:B ce qui supprime le contenu des cellules en A.
Je voudrais donc une macro qui puisse faire cela.
Merci -
Bonjour,
Petite question avez-vous vraiment besoin des valeurs de la colonne "A" que vous copier/coller?
-
Bonjour,
Je comprend votre question mais oui on en a vraiment besoin, les valeurs de la colonne A sont "prioritaires".
J'ai refait le fichier, au lieu d'avoir des fruits j'ai mis le choix de la colonne (Date A ou Date B).
https://www.cjoint.com/c/LAejUmVn4DG
Je voudrais que si dans la cellule C il est écrit "Date B" alors je copie la cellule B de cette même ligne et la copier dans la cellule A de cette ligne.
Et faire cela en boucle jusqu'à la dernière ligne, c'est la où j'ai vraiment un problème.
Pour la condition je pense que je dois faire (je ne suis pas sur, il est possible qu'il y ai des erreurs):
If cells(lig, 3) = "Date B" Then
cells(lig, 3).Copy
cells(lig, 1).Paste
lig étant la ligne qui boucle.
Merci d'avance -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Selon vos explications il faut simplement copier en cellule A la cellule B si cellule A est vide !
-
Et bien comment faire cela en macro?
Car si je rentre en A2:
=SI(A2="";B2;A2)
J'ai une référence circulaire donc pas un bon résultat, d'où l'intervention de la cellule C
(Je ne peux pas insérer une nouvelle colonne dans mon fichier réel)
Encore une fois, le fichier réel fait plusieurs centaines de lignes donc je ne vais pas le faire manuellement -
-
Super c'est exactement ce qu'il me fallait, merci beaucoup!
-
J'ai un nouveau problème avec ce code, en adaptant la formule à mon fichier réel j'ai le message d'erreur: "Incompatibilité de type"
Voici mon codeSub adaptercolA() Dim c As Long For c = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(c, 37) = "Ftard" Then Cells(c, 9).Value = Cells(c, 36) End If Next c End Sub
J'ai l'erreur au niveau de :If Cells(c, 37) = "Ftard" Then
-
Bonjour,
Eh bien sans connaitre la structure du fichier (Feuille concernée) ,même les miracles sont impossibles.
-
Je ne peux vous montrer les données dans le fichier, mais les données de la colonne 0 (15ème colonne) sont sous forme de texte, donc je pense que l'erreur vient surement de la
Voici le code entier
Sub PreOCA() Sheets("PreOCA").Select Range("A2:U2").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Sheets("Calcul S").Select For li = 1 To Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False If Cells(li, 15).Value = "Décaler" Then Rows(li).Copy Sheets("PreOCA").Select Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Calcul S").Activate End If If Cells(li, 15).Value = "Avancer" Then Rows(li).Copy Sheets("PreOCA").Select Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Calcul S").Activate End If If Cells(li, 15) = "Stade Bord" Then Rows(li).Copy Sheets("PreOCA").Select Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Calcul S").Activate End If Next li Application.ScreenUpdating = True Sheets("PreOCA").Select Range("M2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Range("J2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub -
Bonjour,
Ce code n'a aucune relation avec la question du poste 9, désolé je ne peux rien proposer.
-
Les deux codes ont la même structure mais bref
Au niveau deIf Cells(li, 15).Value = "Décaler" Then
je reçois une erreur "Incompatibilité de type"
Je suppose que l'erreur vient du fait que les données de la colonne O (15ème colonne) viennent d'une recherchev -
Bonjour,
Mais bref, pas de réponse.