Assigner la valeur d'une variable dans le "nom" d'une cellule.

Résolu
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009 - 27 juin 2008 à 09:40
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009 - 27 juin 2008 à 15:49
Bonjour.

Mon problème est le suivant:
J'ai créé une macro excel me permettant de d'automatiser le traitement d'un fichier .csv pour faire un tableau de statistiques et autres graphiques.
Chaque lignes correspond à une intervention (dépannage info). Or, je n'ai pas tout les mois le même nombre d'intervention. J'ai donc créé une variable compteur "m".

Range("AW1").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-48])"
    m = Range("AW1")

(je sais c'est fouilli comme code mais je débute tout seul)

Ceci va donc me compter le nombre de lignes, qui ce mois ci correspond à 3895.
La suite de la macro ne fait que répéter l'action faite pour la premiere ligne (çà marque la formule correspondante dans la premiere ligne, puis çà copie / colle en descendant).
Mais, pour copier coller, encore faut-il savoir où on s'arrete...
Je sais que "m" correspond au nombre de lignes, mais comment lui dire de faire ceci en utilisant "m" à a place de 3895?

Range("AL2").Select
    Selection.AutoFill Destination:=Range("AL2:AL3895"), Type:=xlFillDefault
    Range("AL2:AL3895").Select

Ceci bien sur pour que je puisse appliquer cette formule pour les mois suivants, qu'importe le nombre d'interventions...
Merci d'avance pour les réponses :)

4 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
27 juin 2008 à 15:19
Salut,

Range("AL2").Select
    Selection.AutoFill Destination:=Range("AL2:" & m), Type:=xlFillDefault
    Range("AL2:" & m).Select

A+
3
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
27 juin 2008 à 15:37
J'ai essayé ta formule, mais çà ne marche pas, çà me fait une "erreur d'execution 1004".
Un collegue m'a parlé de la fonction cstr() mais n'a pas pris le temp de m'expliquer le fonctionnement.
Est-ce que cette option peut etre envisagé comme une solution?
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
27 juin 2008 à 15:45
...

une variable cela ce declare si ce n'etait pas le cas

Dim m As Long
Range("AW1").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-48])"
    m = Range("AW1").Value
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
27 juin 2008 à 15:49
Je l'ai bien déclaré, mais j'ai fais THE gaffe: j'ai simplement copié/collé la formule

Range("AL2").Select
    Selection.AutoFill Destination:=Range("AL2:" & m), Type:=xlFillDefault
    Range("AL2:" & m).Select

et j'ai donc pas fais gaffe qu'il manquait le "AL" apres ":", ce qui du coup donne:

Range("AL2").Select
    Selection.AutoFill Destination:=Range("AL2:AL" & m), Type:=xlFillDefault
    Range("AL2:AL" & m).Select

Merci à toi :)
0
Rejoignez-nous