Bonjour à tous
En préambule, je dois dire que je n'ai quasiment jamais fait de programmation auparavant, excepté quelques bribes en prépa, et que je dois m'y mettre suite aux aléas d'un stage. Je vous prie donc de m'excuser pour la très haute teneur noobesque de ce post .
Voici ma problématique : je dispose de tableaux croisés dynamiques issus d'une base de données msie à jour fréquemment, et je désire copier certaines données dans une autre feuille qui servirait d'historique, à la suite des données précédentes, en y mettant la date et en modifiant la mise en forme (suppression de l'italique par exemple).
J'en suis arrivé après maintes recherches à écrire le code suivant
Code :
- Sub Historique()
- Worksheets("PropCom" ).Range("B12:G12" ).Copy Destination:=Worksheets("Historique" ).Range("B15" ).End(xlDown).Offset(1)
- Sheets("Historique" ).Select
- Range("A1" ).Select
- Selection.End(xlDown).Select
- ActiveCell.Offset(1, 0).Select
- ActiveCell.End(xlDown).Offset(1).FormulaR1C1 = "=NOW()"
- Selection.NumberFormat = "[$-409]dd/mm/yyyy;@"
- End Sub
|
Le soucis, c'est que je ne connais pas la syntaxe pour modifier la mise en forme dans la ligne 2, et que je n'arrive pas à trouver une solution simple et élégante.
C'est pourquoi j'avais pensé (attention le freestyle commence ) à créer 2 variables de type Range, à affecter dans l'une ce que je désire copier dans l'historique, puis à affecter cette variable dans une autre, à faire les modifs sur cette variable (là je connais la syntaxe) et à la copier ensuite dans l'historique.
Cela me donnerait
Code :
- Dim Origin As Range
- Dim Resultat As Range
-
-
- With ThisWorkbook.Worksheets("PropCom" )
- Set Origin = .Range("B12:G12" )
- End With
-
- Set Resultat = Origin
-
- With Resultat
- .HorizontalAlignment = xlCenter
- .Font.Size = 10
- etc...
- End With
-
- Resultat.Copy Destination:=Worksheets("Historique" ).Range("B15" ).End(xlDown).Offset(1)
|
Problème : si la mise en forme est bien modifiée, celle dans le tableau d'origine l'est aussi!
Cela signifie-t-il que j'ai lamentablement échoué à comprendre ce qu'était l'affectation d'une variable ?
Je pense qu'une solution bien plus simple existe, mais voilà, je pense avoir atteint mes (faibles) limites en programmation, quelqu'un aurait-il la bonté de m'aider ?
Merci d'avance
Message édité par Klivan le 24-06-2011 à 16:55:02
---------------
We are the knights who say : Ni! / 'Bye Julfisher, so long Shepard :(