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   -
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

Configuration: Windows / Firefox 91.0

14 réponses

  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    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;"")


    0
  2. empereurtilleul Messages postés 26 Statut Membre
     
    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
    0
  3. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Petite question avez-vous vraiment besoin des valeurs de la colonne "A" que vous copier/coller?
    0
  4. empereurtilleul Messages postés 26 Statut Membre
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Selon vos explications il faut simplement copier en cellule A la cellule B si cellule A est vide !
    0
  7. empereurtilleul Messages postés 26 Statut Membre
     
    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
    0
  8. empereurtilleul Messages postés 26 Statut Membre
     
    Super c'est exactement ce qu'il me fallait, merci beaucoup!
    0
  9. empereurtilleul Messages postés 26 Statut Membre
     
    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 code
    Sub 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
    0
  10. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Eh bien sans connaitre la structure du fichier (Feuille concernée) ,même les miracles sont impossibles.

    0
  11. empereurtilleul Messages postés 26 Statut Membre
     
    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
    0
  12. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Ce code n'a aucune relation avec la question du poste 9, désolé je ne peux rien proposer.
    0
  13. empereurtilleul Messages postés 26 Statut Membre
     
    Les deux codes ont la même structure mais bref

    Au niveau de
    If 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
    0
  14. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Mais bref, pas de réponse.

    0