Copie de range selon ligne 1

bonjour,

cela doit être tout bête en vba mais je galère

je voudrai selon le titre d'une colonne la copier dans la colonne Y. (en vba)

exemple :

en ligne 1 si "ref" est présent je copie la colonne A en Y

avant

....................colonneA..................colonne B..................colonneC...........etc.......colonneY

ligne1...........ref............................designation...............prix.....................etc

ligne2...........aaaa.........................pull............................10.......................etc

apres

....................colonneA..................colonne B..................colonneC...........etc.......colonneY

ligne1...........ref............................designation...............prix.....................etc......ref

ligne2...........aaaa.........................pull............................10.......................etc.....aaaa

Merci.

Bonjour bbto

Voir avec ce code:

Sub CopyToColonneY()
    Columns("A:A").Copy Destination:=Columns("Y:Y")
End Sub

cdt

Henri

Bonjour bbto

Voir avec ce code:

Sub CopyToColonneY()
    Columns("A:A").Copy Destination:=Columns("Y:Y")
End Sub

cdt

Henri

merci Henri pour votre réponse.

Cependant ce n'est pas forcément la colonne A a chaque fois.

dans l’exemple la valeur "ref" peut être dans A ou B etc..mais forcement dans la ligne 1.

plus dans ce genre.

Sub CopyToColonneY()

valeur = "ref"

if valeur est dans range A1:X1 je copie la colonne concernée en Y

Columns("A:A").Copy Destination:=Columns("Y:Y")

End Sub

Comme ceci

Sub CopyToColonneY()
    col = Range("A1:X1").Find("ref").Column
        Columns(col).Copy Destination:=Columns("Y:Y")
End Sub

Cdt

Henri

Comme ceci

Sub CopyToColonneY()
    col = Range("A1:X1").Find("ref").Column
        Columns(col).Copy Destination:=Columns("Y:Y")
End Sub

Cdt

Henri

cette fonction marche bien.

comment puis je faire pour adapter : si find n'est pas trouvé ça continue.

exemple si find "désignation" n’est pas présent que le code puisse continuer :

col1 = Range("A1:X1").Find("Référence").Column

Columns(col1).Copy Destination:=Columns("AA:AA")

col2 = Range("A1:X1").Find("Désignation").Column

Columns(col2).Copy Destination:=Columns("AB:AB")

col3 = Range("A1:X1").Find("Tarif").Column

Columns(col3).Copy Destination:=Columns("AC:AC")

merci

Bonjour bbto,

Pourquoi ne pas mettre un fichier exemple, qui reflète la réalité, en pièce jointe, au lieu de multiplier tes demandes d'évolution.

Ceci dit:

Voici un code, surement pas orthodoxe pour les puristes, mais qui fonctionne.

Sub CopyToColonne()
    With Sheets("Feuil1") ' à adapter
        On Error Resume Next
            Err = 0
                col = .Range("A1:X1").Find("Référence", LookIn:=xlValues).Column
            If Err = 0 Then
                .Columns(col).Copy Destination:=.Columns("AA:AA")
                Else
                Err = 0
            End If
                col = .Range("A1:X1").Find("Désignation", LookIn:=xlValues).Column
            If Err = 0 Then
                .Columns(col).Copy Destination:=.Columns("AB:AB")
                Else
                Err = 0
            End If
                 col = .Range("A1:X1").Find("Tarif", LookIn:=xlValues).Column
            If Err = 0 Then
                .Columns(col).Copy Destination:=.Columns("AC:AC")
                Else
                Err = 0
            End If
           On Error GoTo 0
     End With

End Sub

Cdt

Henri

Rechercher des sujets similaires à "copie range ligne"