Copier/coller même feuille avec valeur à changer

  • Auteur de la discussion Nhono00
  • Date de début

Nhono00

Nouveau membre
Bonjour à Tous,

J'espère que vous trouverez la solution à mon problème car je tourne en rond !
Voici ce que j'essaie de faire :
J'ai un tableau avec des données et un graphique associé.
Celui ci doit être fait mensuellement donc j'ai créé une macro permettant de copier/coller ce graphique. Mon problème est que lorsque je copie colle, le graphique collé viens prendre ses valeurs dans le tableau du copier et non celui du collé.

J'ai donc enregistré un VBA mais celui ci me demande de débuger !
Sub Macro4()
'
Range("A2:AQ47").Select
Range("AQ2").Activate
Selection.Copy
Rows("2:2").Select
Range("F2").Activate
Selection.Insert Shift:=xlDown
Range("AO11:AQ25").Select
Range("AO12").Activate
Selection.ClearContents
Range("C46:AM47").Select
Selection.ClearContents
Range("C42:AM44").Select
Range("AM42").Activate
Selection.ClearContents
Range("AO43:AQ47").Select
Selection.ClearContents
ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(3).Values = "='PERTE AU FEU'!activesheet.cells(1,1).offset(44,1:23).select"
ActiveChart.SeriesCollection(3).XValues = "='PERTE AU FEU'!activesheet.cells(1,1).offset(41,1:23).select"
Range("AO11:AQ25").Select
Range("AO12").Activate
Selection.ClearContents
Range("C46:AM47").Select
Selection.ClearContents
Range("C42:AM44").Select
Range("AM42").Activate
Selection.ClearContents
Range("AO43:AQ47").Select
Selection.ClearContents
End Sub

Merci d'avance pour vos réponses :) [s:p/1jck]

 

Thore

Grand Maître
Salut,

J'ai été confronté un pb similaire il y a quelques années faire des statistiques.
mais je ne comprend pas de quel base tu part !

ta base est je suppose sur une valeur d'une année
donc tu doit avoir 12 feuilles ?

j'ai plutôt comme principe d'avoir un feuilles de paramètres qui me permet de faire des bases de références.

tu as quoi comme colonnes ?
 

drul

Obscur pro du hardware
Staff
Salut, je ne pige rien à ta macro, c'est l'enregistreur qui ta pondu ça direct ou tu as un peu bidouiller dedans ?
Explique clairement ce que tu désires faire, après j'essaie de t'aider.
Les graphes sont dans la feuille ?
Tu as une feuille par couple donnée/graphe ou tout est dans la même feuille ?

De base c'est pas très compliqué, il faut "juste" redéfinir la source de tes données.

Un petit print screen serait pas inutile ici.
 

Nhono00

Nouveau membre
Bonjour,

Oui effectivement c'est l'enregistreur qui m'as donné cette macro ;)
Voici le document que je souhaite copier :
file:///C:/Users/h.demazure/Documents/pb%20carte%20de%20suivi.png

J'ai donc une feuille avec 5 graphiques qui ont chacun leur base de donnée dans la feuille.
 

drul

Obscur pro du hardware
Staff
J'ai pas accès à ton disque C tu sais :o
Publie la photo sur casimages par exemple ;)
 

Nhono00

Nouveau membre
Pardon, j'ai juste glisser la photo !
J'espère que ca fonctionneras cette fois ...

Vous devez être connecté pour voir les images.
 

drul

Obscur pro du hardware
Staff
Les données sont dans la même pages ?

(faut que je remtte dans ton truc, ça fait près de 2 mois :pt1cable:), pi les graphiques c'est pas toujours facile à manipuler ...
 

Nhono00

Nouveau membre


 

Nhono00

Nouveau membre
Oui effectivement ^^ je n'avais pas vu la notification !
Merci de me venir en aide en tout cas :)

Les données sont en dessous de chaque graphique donc dans la même page.
Un graphique = un tableau de valeur
 

drul

Obscur pro du hardware
Staff
'tain travailler sur les charts c'est galère, j'avais oublié :sweat:
 

drul

Obscur pro du hardware
Staff
Enfin une idée de base ...

Code:
Sub testmacro()
Dim a As ChartObject
Dim b As Variant
Dim c As ChartObject


If Not (ActiveChart Is Nothing) Then
    'ActiveChart.Copy
    Set a = ActiveChart.Parent
    Set b = a.Duplicate
    Set c = ActiveSheet.ChartObjects(b.Name)
    c.Left = a.Left
    c.Top = Range("A19").Top
    'c.Chart.SetSourceData Source:=Sheet1.Range("A19:A22")

    c.Chart.SeriesCollection(1).Formula = Replace(c.Chart.SeriesCollection(1).Formula, "$A$1:$A$4", "$A$19:$A$22")
    
End If
    
End Sub
 

drul

Obscur pro du hardware
Staff
Essaies de voir si tu arrives à travailler à partir de ça, il y a normalement tous les éléments nécessaires ...
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 077
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut