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

XL 2010 VBA: Erreur lors d'une multiplication des des chiffres avec virgule

  • Initiateur de la discussion Initiateur de la discussion TheProdigy
  • Date de début Date de début

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 !

TheProdigy

XLDnaute Impliqué
Bonjour,

J'ai crée deux texbox de saisi de chiffres "Nombre" et "Prix". La multiplication ne fonctionne pas quand je saisis des chiffres avec virgule.
Merci.
 

Pièces jointes

Bonsoir à tous 🙂

@adilprodigy

D'où tu sort ceci 😵:
Cells(no_ligne, 13).Value = "=IF(OR(Cells(no_ligne, 8)=""Vente"", Cells(no_ligne, 8)=""Rachat""), Cout(Cells(no_ligne, 6)),"""")"

Si tu utilise la formule en anglais c'est:
Cells(no_ligne, 13).Formula ="=IF(OR(H3=""Vente"", H3=""Rachat""), F3,"""")"

With Cells(no_ligne, 13)
.Value = .Value
End With

Si j'ai bien compris la formule, en VBA ça donne

If Cells(no_ligne, "H") = "Vente" Or Cells(no_ligne, "H") = "Rachat" Then
Cells(no_ligne, "M") = Cells(no_ligne, "L")
Else
Cells(no_ligne, 13) = ""
End If

VB:
Private Sub CommandButton_Ajouter_Click()
Dim no_ligne As Long, civilite As String

   Application.EnableEvents = False

    With Sheets("Annuaire")
        no_ligne = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        'Insertion des valeurs sur la feuille
        .Cells(no_ligne, 3) = ComboBox1.Value
        .Cells(no_ligne, 1) = ComboBox2.Value
        .Cells(no_ligne, 5) = ComboBox3.Value
        .Cells(no_ligne, 4) = ComboBox4.Value
        .Cells(no_ligne, 2) = ComboBox5.Value
        .Cells(no_ligne, 6) = ComboBox6.Value
        .Cells(no_ligne, 7) = ComboBox7.Value
        .Cells(no_ligne, 9) = CDate(DTPicker1.Value)
        .Cells(no_ligne, 8) = ComboBox8.Value
        .Cells(no_ligne, 10) = TextBox1.Value
        .Cells(no_ligne, 11) = TextBox2.Value
        .Cells(no_ligne, 12) = Val(Replace(TextBox1.Value, ",", ".")) * Val(Replace(TextBox2.Value, ",", "."))    'Cells(no_ligne, 12) = CDbl(TextBox1.Value) * CDbl(TextBox2.Value) 'Cells(no_ligne, 12) = Val(Replace(TextBox1, ",", ".")) * Val(Replace(TextBox2, ",", "."))
        .Cells(no_ligne, 12).Style = "Comma"
    End With
    With Sheets("Annuaire")
        If .Cells(no_ligne, "H") = "Vente" Or .Cells(no_ligne, "H") = "Rachat" Then
            .Cells(no_ligne, "M") = .Cells(no_ligne, "L")
        Else
            .Cells(no_ligne, "M") = ""
        End If
    End With
    Application.EnableEvents = True

    MsgBox ("la ligne a été ajoutée avec succés" & ". Le montant total est " & Format(Cells(no_ligne, 12).Value, "#,##0.00"))

    Me.ComboBox1.Value = ""
    Me.ComboBox2.Value = ""
    Me.ComboBox3.Value = ""
    Me.ComboBox4.Value = ""
    Me.ComboBox5.Value = ""
    Me.ComboBox6.Value = ""
    Me.ComboBox7.Value = ""
    Me.TextBox1 = ""
    Me.TextBox2 = ""
    Sheets("Annuaire").Columns("A:M").AutoFit
End Sub
 
Dernière édition:

Bonsoir @Lone-wolf bonsoir le forum,

Merci, j'ai enregistré la Macro => sélectionner la cellule=> appuyer sur F2=>copier coller sur VBA
Puis j’ai copié le code VBA telquel puis j’ai remplacé les A1C1 par les Cells(1,1) pour que la fonction Excel fonctionne sous environnement VBA. Comme le numéro de la ligne est no_ligne donc j'ai remplacé dans Cells(no_ligne, 8)=""Vente"" voilà.
Merci @Lone-wolf ton code a fonctionné

J'ai une question à ce propos
Je voudrais ajouter une sous-condition If

If Cells(no_ligne, "H") = "Vente" Or Cells(no_ligne, "H") = "Rachat" Then
Cells(no_ligne, "M") = Cells(no_ligne, "L")+1
If Cells(no_ligne, "L")
+1=10 then msgbox("attention impossible de valider la saisi") 'Je veux interdire la validation et sortir
End IF
Else
Cells(no_ligne, 13) = ""
End If

Merci d'avance

 
Bonjour adil

C'est quoi ces Cells(no_ligne, "L")+1 et If Cells(no_ligne, "L")+1=10 then?? Dans la colonne La colonne L il plus de 300000 diram ?? 😵

Comment tu peut te retouver avec 10 dans la collonne?? 😱
 
Bonjour @Lone-wolf, bonjour le Forum,

Je me suis mal exprimé,
VB:
With Sheets("Annuaire")
        If .Cells(no_ligne, "H") = "Vente" Or .Cells(no_ligne, "H") = "Rachat" Then
            .Cells(no_ligne, "M") = .Cells(no_ligne, "L")
         [COLOR=#0080ff]        'Je veux insérer ici une nouvelle sous-condition après cette ligne[/COLOR]. [COLOR=#0080ff]Si la valeur de Cells(no_ligne, "M") = 10 alors un Vbcritical "Attention valeur égale à 10"[/COLOR]
        Else
            .Cells(no_ligne, "M") = ""
        End If
    End With

Merci
 
- 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
14
Affichages
528
Réponses
6
Affichages
437
Réponses
13
Affichages
253
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…