Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro marche pas avec des nombres pas arrondi

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 !

lostheroe

XLDnaute Occasionnel
Bonjour,

J'ai un fichier excel "Liste" qui ce met a jour a partir d'une base de prix "base prix".
Le problème est que la macro plante ci le prix dans la base de prix n'est pas un nombre arrondi (exemple: avec le nombre 9.1 la macro plante; avec le nombre 9 la macro ne plante pas).
Il doit manquer pas grand chose pour que ça marche.
 

Pièces jointes

Re : Macro marche pas avec des nombres pas arrondi

Bonjour Pierrot,

Il y a pas de code dans le fichier base de prix c'est normale (c'est juste une base de donnée).
Le fichier avec la macro est la liste.
Je te l'ai mis en format 97.
 

Pièces jointes

Re : Macro marche pas avec des nombres pas arrondi

Re,

vérifie tes déclarations de variable... les types "long" et "integer" ne prennent pas en charge les déclimales, utilise plutôt le type "double" quand tu veux que le résultat restitué comporte des décimales...
 
Re : Macro marche pas avec des nombres pas arrondi

ça plante apres qu'il est ouvert le fichier base prix. il renvoie l'erreur "erreur d'exécution 13" (incompatibilité de type).

Ci-dessous la macro complète:

Sub Bouton1_QuandClic()
Dim fichier As String, Formule As String, PrixArticle As Double, NbArticle As Double
Dim DerL As Long, L As Long, C As Integer, DerC As Integer
'enlever ' aux 2 lignes suivantes pour choisir dossier, puis fichier
filtre = "Fichiers Excel(*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm)"
fichier = Application.GetOpenFilename(filtre, 1, "Sélection de la base des prix")
'à commenter si les 2 précédentes ne le sont pas

Workbooks.Open Filename:=fichier
TblPrix = ActiveWorkbook.ActiveSheet.UsedRange
ActiveWorkbook.Close False
Application.ScreenUpdating = False
Application.EnableEvents = False
Formule = "="

With Worksheets("bd")
DerL = .Range("A65536").End(xlUp).Row
'pour formules en N changer value par formula
.Range("N2:N" & DerL).Value = .Range("M2:M" & DerL).Value
.Range("M2:M" & DerL).ClearContents
For L = 2 To DerL
If .Cells(L, 4) <> "" Then
nbcol = Application.CountA(.Range("D" & L & ":J" & L)) 'colonnes D à J
Select Case nbcol
Case 1
PrixArticle = CherchePrix(.Cells(L, 4)) 'colonne D
If PrixArticle > 0 Then
If InStr(CStr(PrixArticle), ",") > 0 Then
PrixArticle = Replace(CStr(PrixArticle), ",", ".")
End If
.Cells(L, 13).Formula = "=" & PrixArticle
.Cells(L, 4).Interior.ColorIndex = 45
Else
.Cells(2, 4).Interior.ColorIndex = 44
End If
Case Is > 1
For C = 4 To nbcol + 3
If C > 4 Then
d = InStr(.Cells(L, C), "[") + 1
f = InStr(.Cells(L, C), "x")
NbArticle = Mid(.Cells(L, C), d, f - d)
codearticle = Mid(.Cells(L, C), InStr(.Cells(L, C), " ") + 1)
Else
codearticle = .Cells(L, 4)
End If
PrixArticle = CherchePrix(codearticle)
If PrixArticle > 0 Then
If InStr(CStr(PrixArticle), ",") > 0 Then
PrixArticle = Replace(CStr(PrixArticle), ",", ".")
End If
If C > 4 Then
Formule = Formule & "+(" & NbArticle & "*" & PrixArticle & ")"
Else
Formule = "=" & PrixArticle
End If
.Cells(L, C).Interior.ColorIndex = 45
Else
.Cells(L, C).Interior.ColorIndex = 44
End If
Next
.Cells(L, 13).Formula = Formule
End Select
End If
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 
Re : Macro marche pas avec des nombres pas arrondi

Re,

pas de problème chez moi sous 2003 avec tes fichiers, ces lignes ne renvoient pas d'erreur...
Code:
    Workbooks.Open Filename:=fichier
    TblPrix = ActiveWorkbook.ActiveSheet.UsedRange
 
Re : Macro marche pas avec des nombres pas arrondi

Bonjour Pierrot,

J'ai essayé avec une version plus ancienne de excel. Mais le résultat est toujours le même qu'il y est un point ou une virgule.
Il me met toujours incompatibilité de type.
C'est quand même bizarre que ça fonctionne chez toi.
Le fichier liste met bien tout les prix en face de chaque article?
 

Pièces jointes

- 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
4
Affichages
282
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…