Macro Excel - repeter une fonction sur plusieurs cellules [Résolu]

Signaler
Messages postés
6
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 juin 2007
-
Messages postés
6
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 juin 2007
-
Bonjour,

Mon objectif est de repeter une fonction sur plusieurs cellules.
Par exemple, ecrire " =HEX2BIN(---;8)" sur 10 cellules, les coordonnees de la cellule de depart etant donnees par --- (par exemple, 2 cellules au dessus).
Pour l'instant, je n'ai rien de mieux que ca :

[C3].Select
For i = 1 To 7 Step 1
    ActiveCell.Value = ("=HEX2BIN(C2;8)")
    Selection.Offset(0, 1).Select
Next i

S'il fallait travailler sur une colonne et non une ligne, il suffirait d'utiliser comme coordonnees "C"&r, avec r variant de 1 a 7, mais la, sur une colonne, comment faire ? Je ne veux pas que ma cellule de reference soit C2, mais C2, puis D2, puis E2...
Par ailleurs, je n'arrive a ecrire la formule que lorsque le format de la cellule est defini comme du texte. Si a la base il est defini comme standard, la macro me retourne une erreur. Et si apres ecriture (la cellule etant d'abord definie comme texte) je la modifie en standard, la cellule n'affiche pas de valeur numerique mais elle reste avec =HEX2BIN(C2;8). Alors comment ecrire la formule et, apres execution de la macro, obtenir l'affichage des valeurs numeriques ?

Une petite idee...?  

3 réponses

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut regarde du côté de sélection.AutoFill ou sinon enregistre toi en train de faire la manip et tu vas voir le code généré.

 Drikce 06
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Pas sur du totu que ca marche mais essaie ceci (exemple qui montre simplement ce que te propose[auteurdetail.aspx?ID=786090 Drikce06] )

    Range("C3").Select
    ActiveCell.Value = ("=HEX2BIN(C2;8)")
    Selection.AutoFill Destination:=Range("C3:C10"), Type:=xlFillDefault
   

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
6
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 juin 2007

Le plus simple est d'aller voir le code genere...


Merci pour les idees