Copier-inserer colonne avant colonne variable

Bonjour,

Je souhaite copier une colonne (contenant des formules) d'un onglet (Paramètres Suivi Retard) et l'insérer, dans un autre onglet (Suivi retard), avant une colonne définie (variable) qui a pour titre TENDANCE (en ligne 1).

J'ai créé un code vba qui marche mais il ne prend pas en compte que la colonne devant laquelle je veux insérer ma colonne bouge... et la je bloque. J'ai bien essayé de lire un paquet de forum, je trouve plein de codes mais je n'arrive pas à les appliquer à mon cas. Pouvez-vous m'aider svp?

Voici ma formule actuelle :

Sheets("Paramètres Suivi Retard").Columns("B:B").Copy

Sheets("Suivi retard").Columns("CW:CW").Insert shift:=xlToRight

Range("CW3").Application.CutCopyMode = False

Voici ce que j'ai essayé mais en vain... je sais que c'est pourri :

Dim c As Range

With Worksheets("Suivi retard").Rows(1)

Set c = .Find("TENDANCE")

If Not c Is Nothing Then

NoCol = c.Column

Sheets("Paramètres Suivi Retard").Columns("B:B").Copy

Sheets("Suivi retard").Columns(NoCol).Insert shift:=xlToRight

DoEvents

Application.CutCopyMode = False

End If

End With

Bonjour,

Ton code réalise la copie de la colonne B de la feuille "Paramètres Suivi Retard" et colle les données dans la colonne qui a "TENDANCE" pour en-tête, la colonne "TENDANCE" étant alors décalée sur la droite.

Ce n'est pas ce que tu souhaites faire ?

Ton code simplifié

Sub Test()
Dim C As Range
    With Worksheets("Suivi retard").Rows(1)
        Set C = .Find("TENDANCE")
        If Not C Is Nothing Then
            Sheets("Paramètres Suivi Retard").Columns("B:B").Copy
            .Columns(C.Column).Insert shift:=xlToRight
            Application.CutCopyMode = False
        End If
    End With
End Sub

Cordialement.

Bonjour,

Merci pour ta réponse.

En fait je souhaite, copier la colonne B de l'onglet "Paramètres Suivi Retard" et l'insérer avant la colonne TENDANCE de l'onglet "Suivi retard"... sachant que la colonne "TENDANCE" changer de place dans le tableau chaque semaine.

Je viens d'essayer le code que tu m'as donner mais il ne marche pas... en fait rien ne se passe... ni erreur, ni débogage.

Le titre de la colonne TENDANCE est dans des cellules fusionnées (lignes 1 & 2)... est-ce que ça peut poser problème?

Je joins mon fichier pour aider.

Le titre de la colonne TENDANCE est dans des cellules fusionnées (lignes 1 & 2)... est-ce que ça peut poser problème?

Je suppose que tu as fait le test sans la fusion de cellules ...

Cordialement.

ça marche mieux effectivement... merci beaucoup.

Et si jamais je souhaite garder mes cellule fusionnées, il y a une solution?

Oublis ma demande pour les cellules fusionnées, c'est vraiment pas important.

Par contre j'ai une autre requête :

Après avoir ajouter une nouvelle colonne grâce au code que tu m'as donné, il faudrait que la colonne précédente à celle-ci soit copier-coller en valeur.

Le plus simple serait peut être de copier-coller en valeur la dernière colonne, avant la colonne TENDANCE, avant d'insérer la nouvelle colonne.

Vous pouvez m'aider pour le code? A savoir comment sélectionner cette colonne se trouvant avant la colonne TENDANCE?

Essaye comme cela ...

Sub Ajouter_colonne_semaine()
Dim C As Range
    Application.ScreenUpdating = False
    With Worksheets("Suivi retard")
        Set C = .Rows(1).Find("TENDANCE")
        If Not C Is Nothing Then
            Sheets("Paramètres Suivi Retard").Columns("B:B").Copy
            .Columns(C.Column).Insert shift:=xlToRight
            Application.CutCopyMode = False
            With C.Offset(, -2).EntireColumn
                .Copy
                .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                Application.CutCopyMode = False
            End With
        End If
    End With
    Application.ScreenUpdating = True
End Sub

Cordialement.

Excellent... ça fait un moment que je galère là-dessus. Ca marche.

Merci beaucoup pour ta dispo.

Rechercher des sujets similaires à "copier inserer colonne variable"