[Excel VBA]macro format

Fermé
The Flow - 4 août 2009 à 14:29
 The Flow - 6 août 2009 à 10:12
Bonjour à tous !

Je travaille actuellement sur une automatisation de données en VBA.

Après avoir créé une colonne, j'applique une formule =Gauche() à chacune de ses cellules afin d'isoler les 2 chiffres des cellules adjacente. Dans ma macro, j'ai programmé un copier/collage spécial par valeur afin de supprimer la formule tout en gardant cette nouvelle valeur.

Voici mon code :
    Range("AC2").Select
    ActiveCell.FormulaR1C1 = "=RC[-7]+RC[-2]"

    Dim LastRowAC As Long
    With ActiveSheet
    LastRowAC = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
    Range("AC2").AutoFill Destination:=Range("AC2:AC" & LastRowAC), Type:=xlFillDefault


Le souci est que la colonne ne passe pas automatiquement en format "nombre". J'ai besoin d'appliquer ce format automatiquement de manière à ce que ces cellules puissent servir de référence dans une rechercheV, et je n'y parviens pas.

Lorsque je mets fin à ma macro à ce niveau là de l'automatisation, Excel m'indique un point d'exclamation à coté de chaque cellule. Lorsque l'on clique sur ce dernier, un menu déroulant apparaît et me propose de "convertir la cellule en nombre". J'arrive à obtenir le résultat manuellement de cette manière, mais comment parvenir au même résultat au moyen d'une macro Excel ?

Je remercie à l'avance tous ceux qui prendront la peine de me venir en aide.
Bonne journée et merci à vous !
A voir également:

9 réponses

redonky Messages postés 102 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 31 octobre 2010 23
4 août 2009 à 14:42
Salut je pense que

Cells(??).numberformat = "0.00"

devrais faire l'affaire tiens moi au courant
0
Redonky, merci de m'avoir répondu.

J'ai testé ta proposition en écrivant ceci et cela n'a pas fonctionné :
Range("AU:AU").NumberFormat="0.00"
et
Cells("AU2").NumberFormat="0.00"
ou encore
Cells(AU2).NumberFormat="0.00"

Comme tu peux le voir dans la description de mes tentatives, je ne suis qu'un petit bidouilleur débutant :)

Par contre, je viens de m'apercevoir que je n'avais pas copié le bon extrait du code. Le voici :
' Création de la colonne code secteur
    Columns("AO:AO").Select
    Selection.Insert Shift:=xlToRight
    Range("AO1").Select
    ActiveCell.FormulaR1C1 = "Code Secteur"
    
    Range("AO2").Select
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],2)"
    Dim LastRowAN As Long
    With ActiveSheet
    LastRowAO = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
    Range("AO2").AutoFill Destination:=Range("AO2:AO" & LastRowAO), Type:=xlFillDefault
    
    'copie des valeurs
    Columns("AO:AO").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


Merci
0
redonky Messages postés 102 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 31 octobre 2010 23
4 août 2009 à 15:33
Tous tes échecs me paraisse normal car :

Range("AU:AU").NumberFormat="0.00" ne comporte pas de chiffre

Range("AU2").NumberFormat="0.00" me semble juste ou

Range("AU2:AU2").NumberFormat="0.00" me semble juste mais stupide

et cells s'utilise de la manière suivante :

Cells(ligne, colonne)

donc Cells(2, "AU").NimberFormat="0.00" me semble juste.

Alors?
0
Merci pour ces précisions, malheureusement cela ne fonctionne toujours pas.

Sub test()
Sheets("IP").Select
Cells(2, "AU").NumberFormat = "0.00"
End Sub


J'anticipe quelque peu sur ma prochaine question. Comment adapter cette formule Cell à toute les valeurs de la colonne AU ? Je n'aurai malheureusement pas qu'une cellule à traiter de cette manière.

Merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
redonky Messages postés 102 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 31 octobre 2010 23
4 août 2009 à 17:12
Columns("AU").numberformat="0.00"

Dit moi si ça ça marche?

PS: depuis tout à l'heur j'écris NumberFormat au lieu de numberformat :s si c'est ça :'(
0
VBA me met automatiquement NumberFormat avec les majuscules. Ca ne fonctionne toujours pas :(
0
redonky Messages postés 102 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 31 octobre 2010 23
4 août 2009 à 20:12
Tu as quel version d'Excel?car si tu as 2007 ou 2008 je te conseil de faire un enregistrement manuel de macro ;)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
4 août 2009 à 20:34
Bonsoir,

Tu pourrais aussi déposer un extrait de ton fichier sur cijoint.fr et coller ici le lien fourni.
Vu que tu passes par formule tu pourrais essayer avec:
ActiveCell.FormulaR1C1 = "=(LEFT(RC[-1],2))*1"
au lieu de :
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],2)"
pour forcer la conversion en numérique, et tu peux laisser le format des cellules en 'standard'

Mais il serait plus simple et plus rapide de te passer des formules sur la feuille et le faire directement en vba

eric
0
Bonjour à vous !

Pour répondre à toutes vos propositions :

je suis sous excel 2003 et mon code a été généré jusque là à partir de l'enregistreur de macros.
J'ai modifié la formule en rajoutant un *1 (sous les conseils d'ériiic) et ça fonctionne niquel !

Un grand merci pour votre soutien !


---------


Si vous voulez vous mesurer à un deuxième challenge, je vous invite à consulter le topic suivant.

https://forums.commentcamarche.net/forum/affich-13711066-vba-excel-rechercher-remplacer-format

Le problème est que j'ai enregistré une macro qui effectue un recherché/remplacé de "." en "/" afin de convertir le format de cellules au format date. Le changement de caractère à bien lieu, mais certaines cellules ne passent pas automatiquement an format date, alors que ça fonctionne lorsque je fais cette opération manuellement).
0