Macro Excel - repeter une fonction sur plusieurs cellules

Résolu
jecario Messages postés 6 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 11:06
jecario Messages postés 6 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 13:46
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

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
5 juin 2007 à 11:08
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
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 juin 2007 à 11:20
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
0
jecario Messages postés 6 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 13:46
Le plus simple est d'aller voir le code genere...


Merci pour les idees
0
Rejoignez-nous