Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

lesurjul

XLDnaute Junior
Bonjour,

Dans le fichier joint ci dessous, j'aimerais réaliser une macro pour me recopier la plage B3:B25 dans la colonne la colonne F et ensuite à chaque nouvelle exécution, me recopier cette même plage en décalant d'une colonne vers la gauche.

Comment faire pour copier coller par macro B3:B25 dans la colonne H ? (jusqu'ici ça va) puis décaler de 1 colonne à chaque execution de la macro ? (pour ensuite avoir une copie des données de la synthèse 5 en I, puis la 6 en J, ... pour pouvoir aboutir sur un graphique d'évolution ?

J'arrive, en enregistrant la macro à décaler vers la droit mais je me retrouve alors avec 654321, pour réaliser un graphique il faudrait décaler vers la gauche ce qui me donnerait 123456.

Voici la feuille pour ilustrer.

Julien
 

Pièces jointes

  • QuestionMacroXld.xlsm
    18.4 KB · Affichages: 76
  • QuestionMacroXld.xlsm
    18.4 KB · Affichages: 101
  • QuestionMacroXld.xlsm
    18.4 KB · Affichages: 83

lesurjul

XLDnaute Junior
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

P.S : il faudrait ne recopier que les valeurs.
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
 

lesurjul

XLDnaute Junior
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Cela revient à ajouter +1 à chaque fois à cette macro :
Sub test()
'
' test Macro
'
Sheets("Suivi evolution").Select
Columns("F:F").Select
Range("F2").Activate
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B3:B25").Select
Selection.Copy
Range("F3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Bonjour lesurjul

Teste:

Code:
Sub report()
col = Cells(3, Columns.Count).End(xlToLeft).Column + 1
Range("B3:B25").Copy Destination:=Cells(3, col)
End Sub
 

lesurjul

XLDnaute Junior
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Bonjour pierrejean,

en executant
Sub test()
col = Cells(3, Columns.Count).End(xlToLeft).Column + 1
Range("B3:B25").Copy Destination:=Cells(3, col)
End Sub

Je ne vois aucune modification... les valeurs de la plage B3:B25 ne se recopie en F3:F25 puis si je la ré execute en G, H, enfin Column +1
 

pierrejean

XLDnaute Barbatruc
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Re

Ah !!

Et que se passe-t-il sur le fichier ????
 

Pièces jointes

  • QuestionMacroXld.xlsm
    24 KB · Affichages: 79
  • QuestionMacroXld.xlsm
    24 KB · Affichages: 83
  • QuestionMacroXld.xlsm
    24 KB · Affichages: 101

lesurjul

XLDnaute Junior
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Sur ton fichiers attachés, la macro report() fonctionne parfaitement (hormis le fait qu'elle recopie les formules et pas les valeurs uniquements) mais au delà de ça, j'avais creer la même macro dans mon fichier source et lorsque j'executais la macro elle ne me renvoyait pas d'erreur mais ne modifiée rien. je vais donc ré-essayer mais tu as trouvé la solution apparement :D
 

lesurjul

XLDnaute Junior
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

J'ai ré-essayer apparement là ça fonctionne, 2 petites précisions :
- Comment faire pour que je puisse affecter la macro pour réaliser ce report depuis une autre feuille ? la destination n'est pas précisez si je comprends bien la macro
- Comment faire que la recopie ne soit que les valeurs ?
Selection.Insert Shift:=xlDown
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False ?

Merci de votre aide pierrejean
 

pierrejean

XLDnaute Barbatruc
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Re

Quand on sait tout , en general cela va mieux

Teste:

Code:
Sub report()
col = Sheets("Suivi evolution").Cells(3, Columns.Count).End(xlToLeft).Column + 1
For Each cel In Sheets("Suivi evolution").Range("B3:B25")
  cel.Offset(0, col - 2) = cel.Value
Next
End Sub
 

lesurjul

XLDnaute Junior
Re : Coller des données en décallant la colonne vers la GAUCHE ? [MACRO]

Merci pierrejean, c'est exactement ce que j'espérait, j'ai rajouté cette macro dans ma macro de sauvegarde, c'est parfait.
Juste une question, j'essai à partir de ça de faire des graphiques "automatiques" et apparement il est impossible de définir la plage du graphique par une fonction decaler(x;y;z;nbval()) pour rendre la plage dynamique alors qu'il est possible d'utiliser cette même fonction pour définir une ou des séries du graphique ?
 

Discussions similaires