Copie sous condition
Résolu
dhaze
Messages postés
113
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14930 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14930 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je souhaiterais faire une copie de la colonne F
Vers la colonne "Nom" comme suit:
Mais pas à pas avec une condition et un ajout:
Si la valeur de la cellule à copier est différente de "#"
on la recopie en joutant "_A"
Si la valeur de la cellule à copier est égale à "#"
on recopie la valeur de la cellule juste au-dessus en joutant "_B"
Votre aide serait la bienvenue...
Lo.
Je souhaiterais faire une copie de la colonne F
Vers la colonne "Nom" comme suit:
ActiveSheet.Range(ActiveSheet.Range("F65536").End(xlUp), "F2").Select
Selection.Copy
Rows(1).Find("Nom", LookAt:=xlWhole).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Mais pas à pas avec une condition et un ajout:
Si la valeur de la cellule à copier est différente de "#"
on la recopie en joutant "_A"
Si la valeur de la cellule à copier est égale à "#"
on recopie la valeur de la cellule juste au-dessus en joutant "_B"
Votre aide serait la bienvenue...
Lo.
1 réponse
-
Bonjour,
Il y a dans ton énoncé quelques bizarreries mais en le respectant, cela doit donner ceci :Dim col As Integer, lig As Long With ActiveSheet col = .Rows(1).Find("Nom", LookAt:=xlWhole).Column For lig = 2 To .Cells(Rows.Count, "F").End(xlUp).Row If .Cells(lig, "F") <> "#" Then .Cells(lig, col) = .Cells(lig, "F") & "_A" Else .Cells(lig - 1, col) = .Cells(lig, "F") & "_B" End If Next lig End With
-
Merci pour ton aide.
J'avoue que ce n'était pas très clair...
En adaptant ta proposition pour le résultat escompté, voilà ce que ça donne:
Sub Créer_les_noms() Dim col As Integer, lig As Long With ActiveSheet col = .Rows(1).Find("Nom", LookAt:=xlWhole).Column For lig = 2 To .Cells(Rows.Count, "F").End(xlUp).Row If .Cells(lig, "F") <> "#" Then .Cells(lig, col) = .Cells(lig, "F") & "_A" Else .Cells(lig, col) = .Cells(lig - 1, "F") & "_B" End If Next lig End With End Sub
La boucle que j'avais entrepris, en plus de ne pas fonctionner,
était beaucoup plus alambiquée que ça...
Ta citation d’Antoine est fort à propos !
Merci encore.
Lo. -
-