Assigner la valeur d'une variable dans le "nom" d'une cellule. [Résolu]

Signaler
Messages postés
130
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
130
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
16 juillet 2009
-
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

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

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

A+
Messages postés
130
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
16 juillet 2009

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?
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
...

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
Messages postés
130
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
16 juillet 2009

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