macro qui ne fonctionne plus avec des nombres décimaux ?

jojo2006

XLDnaute Occasionnel
Bonjour à tout le forum,

je viens vers vous car je rencontre un souci avec une macro qui fonctionnait très bien avant mais qui maintenant ne marche plus.

Je m'explique, je fais des calculs de moyenne sur un tableau de mesure où je précise les durées des temps (t1 et t2). exemple t1 = 0 s et t2= 2s et j'appuie sur le bouton "Correction puissance à vide"

Je moyenne les valeurs entre 0 et 2 s et je stock la valeur dans une feuille Pvide.

Ensuite je fais un décalage et je crée une formule sur mon tableau d'origine qui est

= valeur actuelle - Pvide (calculée précédement).


Mon souci c'est que cette formule ne fonctionne que si la valeur actuelle du tableau est une valeur entière ! Pourquoi ?

j'obtiens erreur exécution 1004

erreur définie par l'application ou l'objet

je suis sous excel 2010.


Avant cela marchait bien.

je n'arrive pas à voir d'où vient le probléme.

Ci dessous le code de la macro et le fichier excel qui va avec.


Merci à tous pour m'aider à résoudre mon souci.

Bonne journée

Cordialement,
Jo


Sub puissance_corrige()


colonnepuissancevide = 3
coco = 2

k = 2
r = 2

Sheets("data").Select

Do While Sheets("Pvide").Cells(r, colonnepuissancevide) <> ""

i = 3
Do While Sheets("data").Cells(i, coco) <> ""

formule4 = "=" & Sheets("data").Cells(i, coco).Value & " - Pvide!C" & k & ""

Sheets("data").Cells(i, coco).Value = formule4

i = i + 1
Loop

k = k + 1
r = r + 1
coco = coco + 1
Loop


Sheets("data").Select

End Sub
 

Pièces jointes

  • debuggage.xlsm
    364.1 KB · Affichages: 23

bouley

XLDnaute Nouveau
Bonjour à tout le forum,

je viens vers vous car je rencontre un souci avec une macro qui fonctionnait très bien avant mais qui maintenant ne marche plus.

Je m'explique, je fais des calculs de moyenne sur un tableau de mesure où je précise les durées des temps (t1 et t2). exemple t1 = 0 s et t2= 2s et j'appuie sur le bouton "Correction puissance à vide"

Je moyenne les valeurs entre 0 et 2 s et je stock la valeur dans une feuille Pvide.

Ensuite je fais un décalage et je crée une formule sur mon tableau d'origine qui est

= valeur actuelle - Pvide (calculée précédement).


Mon souci c'est que cette formule ne fonctionne que si la valeur actuelle du tableau est une valeur entière ! Pourquoi ?

j'obtiens erreur exécution 1004

erreur définie par l'application ou l'objet

je suis sous excel 2010.


Avant cela marchait bien.

je n'arrive pas à voir d'où vient le probléme.

Ci dessous le code de la macro et le fichier excel qui va avec.


Merci à tous pour m'aider à résoudre mon souci.

Bonne journée

Cordialement,
Jo


Sub puissance_corrige()


colonnepuissancevide = 3
coco = 2

k = 2
r = 2

Sheets("data").Select

Do While Sheets("Pvide").Cells(r, colonnepuissancevide) <> ""

i = 3
Do While Sheets("data").Cells(i, coco) <> ""

formule4 = "=" & Sheets("data").Cells(i, coco).Value & " - Pvide!C" & k & ""

Sheets("data").Cells(i, coco).Value = formule4

i = i + 1
Loop

k = k + 1
r = r + 1
coco = coco + 1
Loop


Sheets("data").Select

End Sub
 

bouley

XLDnaute Nouveau
Bonjour jojo

dans ta ligne : formule4 = "=" & Sheets("data").Cells(i, coco).Value & " - Pvide!C" & k & ""

Sheets("data").Cells(i, coco).Value contient la valeur décimale. Mais avec une virgule comme séparateur décimal
alors qu'il faut un point dans la configuration de ton excel.

tu peux écrire : formule4 = "=" & Replace(Sheets("data").Cells(i, coco).Value, ",", ".") & " - Pvide!C" & k & "" par exemple.

@+
 

jojo2006

XLDnaute Occasionnel
Bonjour les gars,

Vous aviez raison, entre temps la config de mon PC a changé . Cela fais un moment que j'avais pas utilisé mon fichier excel.

J'ai reconfiguré le séparateur dans

panneau de configuration, 'région et langue'.
Dans 'format / paramètres supplémentaires

Tout refonctionne comme avant !

Merci les amis pour la réactivité et la pertinence !!!

A bientôt

Jojo
 

Discussions similaires

Réponses
0
Affichages
398

Statistiques des forums

Discussions
315 098
Messages
2 116 198
Membres
112 681
dernier inscrit
romain38