Copier Colonne en Feuille 1 et la coller sur une Ligne dans Feuille 2

Bonjour :)

Dans mon cas j'alimente la colonne A de la feuille1 de noms de projets par exemple (A, B, C, D). Donc à partir de A2 vers le bas.

J'aimerais en quittant Feuille1 que cette colonne soit copieé et collé dans la première ligne de Feuille2 à partir de B1 vers la droite.

Voici le code que j'ai entré dans Feuille1 :

Private Sub Worksheet_Deactivate()

Call CopierProjet

End Sub

Et voici celui que j'ai entré dans Feuille2 :

Sub CopierProjet()

Dim Col As Integer, EnregExiste As Boolean

With Sheets("Feuille2")
    For Col = 2 To Range("B1").End(xlToRight).Column
        If .Cells(1, Col) = Sheets("Feuille1").Range("G1") Then EnregExiste = True: Exit For 

'G1 est figée, elle indique le dernier projet que j'ai entré dans la colonne A de la feuille1, si dernière valeur de la colonne A est "Z" alors G1 prend "Z".

    Next Col
    If Not EnregExiste Then
        Col = Range("B1").End(xlToRight).Column + 1
        Sheets("Feuille1").Range("G1").Copy
        .Cells(1, Col).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End If
End With

End Sub

Pourtant ça ne marche pas ... merci de m'aider.

En effet je n'arrive pas à indiquer où se fait le collage c'est à dire les : B1, C1, D1, E1 ...

Que dois je mentionner : celle, range, row ? Et comment insérer la Col (la boucle) dans la fonction ?

Bonsoir,

je vous avoue ne pas avoir compris... Vous avez une colonne feuille 1 avec des données A,B,C,D et en G1 de cette feuille il y a quoi comme valeur ?
Pour moi je pensais prendre la colonne "utile" de la feuille 1 et de la transposer sur la feuille 2 à partir de la cellule B1.

Mais est-ce plutôt : vous ajoutez un projet "E", G1 prend la valeur de "E", et du coup il faut trouver la première cellule vide de la ligne de la feuille 2 afin d'y coller "E" comme cela en feuille 1 de la ligne 2 à la ligne 6 on a A, B, C, D et E et sur la feuille 2 sur la ligne 1 à partir de la colonne B à F on a A, B, C, D et E ?

@ bientôt

LouReeD

Bonsoir LouReed, merci pour votre réponse. Oui c'est exactement comme vous avez stipulé pour l'exemple de E :) c'est dans ce sens que j'ai écrit le code.

Bonsoir,

un essai :

Le principe : une formule en G1 qui trouve la dernière valeur de projet de la colonne A.
On récupère cette valeur.
Une ligne de code pour trouver la dernière colonne non vide de la ligne 1 de la feuille 3.
On compare ces deux valeurs : si égale = déjà enregistré, sinon on ajoute le projet dans la première cellule vide de la ligne 1.

@ bientôt

LouReeD

Merci beaucoup pour votre appui. Vous m'avez proposé une autre façon de faire mais qui m'a aidé à corriger mon code qui devient ainsi :

Sub CopierProjet()

Dim Col As Integer, EnregExiste As Boolean

With Sheets("PROJET")
    For Col = 2 To .Cells(1, Columns.Count).End(xlToLeft).Column
        If .Cells(1, Col) = Sheets("UTILITAIRE").Range("G1") Then EnregExiste = True: Exit For

    Next Col
    If Not EnregExiste Then
        Col = Cells(1, Columns.Count).End(xlToLeft).Column + 1
        Sheets("UTILITAIRE").Range("G1").Copy
        .Cells(1, Col).PasteSpecial Paste:=xlPasteValues

    End If
End With

End Sub

Donc la correction c'est de remplacer

For Col = 2 To Range("B1").End(xlToRight).Column

par

Col = 2 To .Cells(1, Columns.Count).End(xlToLeft).Colum

Bonjour

C'est bien cela mais sans oublier le "n" à la fin de columN

@ bientôt

LouReeD

Je n'ai pas compris pourquoi xltoRight ne marche pas ... il est pourtant plus logique puisqu'on se déplace vers la droite colonne A puis B, puis C, D, .... etc ?

Je crois que cela cherche la prochaine cellule non vide à partir de la B1 en allant vers la droite, donc C1...

Mais je ne suis pas sûr de mes dire et "l'expérience" comme on dit me fait partir de la fin vers la gauche (ou le haut en colonne) et là ça marche bien...

@ bientôt

LouReeD

Rechercher des sujets similaires à "copier colonne feuille coller ligne"