Problème en VBA : le code n'en fait qu'à sa tête !

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bartimeus65

XLDnaute Nouveau
Bonjour à tous. J'ai un soucis pour un code VBA sur Excel. Voici la ligne en question :

Code:
Range("J2").FormulaR1C1 = "=(1+" & (pla_cut / 100) & ")*(1+" & (pla_cont / 100) & ")"

"pla_cut" et "plan_cont" sont définis plus haut, et ont respectivement pour valeur 20 et 35. Je devrais donc avoir normalement "1.62" dans la cellule J2...


En théorie, cette formule marche (je l'ai testé sur plusieurs PCs)... alors pourquoi juste sur mon PC, la macro buggue dessus, et me met une "Erreur d'execution '1004': erreur definie par l'application ou par l'objet" ????



J'ai fait quelques tests en remplacant "FormulaR1R1" par "Value", mais j'ai le même problème. Toutes mes lignes contenant cette formule stoppent la macro, et m'envoient ce message d'erreur. Comme écrit plus haut, j'ai fait fonctionner la macro sur d'autres PCs, et ça passe nickel..


Je me suis apercu que ce problème venait peut-être du fait que les formules "(pla_cut / 100)" et "(pla_cont / 100)" donnaient des nombres entre 0 et 1... Bingo ! Si je remplace "pla_cut" et "pla_cont" par des nombres supérieurs ou égaux à 100, la ligne passe nickel... si l'une des deux variables passe en dessous de 100... bug !


J'ai un processeur Intel Core 2 avec 3 Go de RAM...




Un idée sur cette saute d'humeur d'Excel ?????
Merci d'avance de vos réponses 🙂
 
Dernière édition:
Re : Problème en VBA : le code n'en fait qu'à sa tête !

Bonjour à tous,

en effet, si le séparateur décimal dans Excel est la ",", ça fait sauter le séparateur

explication :

dans ta cellule, tu as "4562,465"
en utilisant LTRIM et RTRIM (pourquoi pas TRIM ?)
tu convertis ça en texte
puis tu dit de mettre ce texte dans la cellule
mais en VBA, la "," est le séparateur de milliers
et donc lorsque Excel essaye de réinterpréter la valeur en numérique, il considère qu'il n'y a pas de séparateur de décimales ("." en VBA)

peut-être comme ça ?

Code:
Dim i
Dim j
For i = 2 To 12
    For j = 1 To fin_1
        If Not IsNumeric(Cells(j, i).Value) Then
            Cells(j, i).Value = RTrim(LTrim(Cells(j, i).Text))
        End If
    Next j
Next i
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
2 K
Réponses
6
Affichages
2 K
Retour