Copier-inserer colonne avant colonne variable Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
T
Tieuma66
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 24 mai 2019

Message par Tieuma66 » 24 mai 2019, 10:52

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

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
g
gyrus
Membre fidèle
Membre fidèle
Messages : 285
Appréciations reçues : 40
Inscrit le : 8 avril 2019
Version d'Excel : 2013 FR

Message par gyrus » 24 mai 2019, 11:18

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.
1 membre du forum aime ce message.
T
Tieuma66
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 24 mai 2019

Message par Tieuma66 » 24 mai 2019, 11:59

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?
T
Tieuma66
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 24 mai 2019

Message par Tieuma66 » 24 mai 2019, 13:45

Je joins mon fichier pour aider.
Plan de convergence_colonne.xlsm
(962.32 Kio) Téléchargé 3 fois
g
gyrus
Membre fidèle
Membre fidèle
Messages : 285
Appréciations reçues : 40
Inscrit le : 8 avril 2019
Version d'Excel : 2013 FR

Message par gyrus » 24 mai 2019, 14:21

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 ... :wink:

Cordialement.
1 membre du forum aime ce message.
T
Tieuma66
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 24 mai 2019

Message par Tieuma66 » 24 mai 2019, 14:24

:mrgreen: ça marche mieux effectivement... merci beaucoup.

Et si jamais je souhaite garder mes cellule fusionnées, il y a une solution?
T
Tieuma66
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 24 mai 2019

Message par Tieuma66 » 24 mai 2019, 14:31

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?
g
gyrus
Membre fidèle
Membre fidèle
Messages : 285
Appréciations reçues : 40
Inscrit le : 8 avril 2019
Version d'Excel : 2013 FR

Message par gyrus » 24 mai 2019, 16:06

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.
1 membre du forum aime ce message.
T
Tieuma66
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 24 mai 2019

Message par Tieuma66 » 24 mai 2019, 16:12

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

Merci beaucoup pour ta dispo.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message