Effacer des données des valeurs de textbox

Bonsoir à tous,

Je souhaite avec une macro effacer les valeurs (numériques et texte) dans des textbox. J'ai certaines textbox (ceux sont des valeurs calculées) qui ne s'effacent pas.

J'ai également un problème c'est quand je lance la macro, j'ai des msgbox qui apparaissent (des msgbox qui sont relatives à mes macro dans les textbox).

voici le code pour effacer les valeur dans mes textbox :

Private Sub EFFACER_change()

CP.Value = ""
VILLE.Value = ""
LOCSPE.Value = ""
DPT.Value = ""
MONACO.Value = False
POIDS.Value = ""
NBPALETTES.Value = ""
HAYON.Value = False
TRANCHEPOIDS.Value = ""

CtAFFRET.Value = "0.00€"
CtMess.Value = "0.00€"
COMPARATIF.Value = ""

End Sub

Ci-dessous un des codes de la msgbox qui se déclenche :

Private Sub COMPARATIF_Change()

    'on compare quel est le type de transport (affret ou Mess) le plus avantageux si le nombre de palettes n'excède pas 3

    If NBPALETTES.Value >= 4 Then
        COMPARATIF.Value = "AFFRETEMENT"
        MsgBox "La messagerie ne peut être utilisée au-delà de 3 palettes pour un même destinataire.  Vous êtes obligé de choisir l'affretement pour cet envoi."

    ElseIf CtMess.Value < CtAFFRET.Value And NBPALETTES.Value > 0 And NBPALETTES.Value <= 3 Then
        COMPARATIF.Value = "MESSAGERIE"

    ElseIf CtMess.Value > CtAFFRET.Value And NBPALETTES.Value > 0 And NBPALETTES.Value <= 3 Then
        COMPARATIF.Value = "AFFRETEMENT"

    End If

End Sub

Avez-vous une astuce pour bien effacer dans les textbox et pour que les msgbox n'apparaissent plus.

Avez-vous besoin d'autres informations?

Hello,

Oui effectivement, il vaudrait mieux que tu déposes le fichier en question, sans données confidentielles.

Dans l'attente.

Bonsoir

Bonsoir Hulk

La méthode la plus simple

Dans le code de l'Userform tu déclares une variable publique

Avant la 1ère macro (en haut de la page - en principe après les Option Explicit ou autre)

Exemple

Dim Encours  as Boolean

Ensuite dans ta macro

    Private Sub EFFACER_change()
  EnCours = True
    CP.Value = ""
    VILLE.Value = ""
    LOCSPE.Value = ""
    DPT.Value = ""
    MONACO.Value = False
    POIDS.Value = ""
    NBPALETTES.Value = ""
    HAYON.Value = False
    TRANCHEPOIDS.Value = ""

    CtAFFRET.Value = "0.00€"
    CtMess.Value = "0.00€"
    COMPARATIF.Value = ""
  EnCours = False
    End Sub

Et tu places ce code dans toutes les macros dont tu ne veux pas avoir le message

Private Sub COMPARATIF_Change()

  If EnCours =  True Then Exit Sub
    'on compare quel est le type de transport (affret ou Mess) le plus avantageux si le nombre de palettes n'excède pas 3

Bonsoir BENZAî,

Je te remercie ça fonctionne très bien.

J'ai également un petit problème sur mon code ci-dessous. Une fois que j'ai calculé le cout par type de transport (ctAffret et CtMess), je souhaite afficher le comparatif dans un texbox c'est à dire afficher le nom du type de transport le plus approprié, mais je ne comprends pas car 1 fois sur 2 le nom qui est affiché est faux car il m'affiche le mode de transport le plus cher.

Il faut savoir également que si le nombre de palettes est > à 3 le résultat est forcément AFFRETEMENT.

Ci-dessous le code.

Private Sub COMPARATIF_Change()

If EnCours = True Then
Exit Sub
End If

    'on compare quel est le type de transport (affret ou Mess) le plus avantageux si le nombre de palettes n'excède pas 3

    If NBPALETTES.Value >= 4 Then
        COMPARATIF.Value = "AFFRETEMENT"
        MsgBox "La messagerie ne peut être utilisée au-delà de 3 palettes pour un même destinataire.  Vous êtes obligé de choisir l'affretement pour cet envoi."

    ElseIf CtMess.Value < CtAFFRET.Value And NBPALETTES.Value > 0 And NBPALETTES.Value <= 3 Then
        COMPARATIF.Value = "MESSAGERIE"

    ElseIf CtMess.Value > CtAFFRET.Value And NBPALETTES.Value > 0 And NBPALETTES.Value <= 3 Then
        COMPARATIF.Value = "AFFRETEMENT"

    End If

End Sub

Aurais-tu une idée d'où ça pourrait provenir?

Bonsoir

Le problème c'est que tu compare des textes entre eux et "100" est plus petit que "20"

Donc il faut transformer tes textes en nombre

Essayes

On pourrait simplifier mais cela serait plus pratique avec ton fichier

Private Sub COMPARATIF_Change()

  If EnCours = True Then Exit Sub

  'on compare quel est le type de transport (affret ou Mess) le plus avantageux si le nombre de palettes n'excède pas 3

  If NBPALETTES.Value >= 4 Then
    COMPARATIF.Value = "AFFRETEMENT"
    MsgBox "La messagerie ne peut être utilisée au-delà de 3 palettes pour un même destinataire.  Vous êtes obligé de choisir l'affretement pour cet envoi."
  ElseIf Val(Replace(CtMess, ",", ".")) < Val(Replace(CtAFFRET, ",", ".")) And NBPALETTES.Value > 0 And NBPALETTES.Value <= 3 Then
    COMPARATIF.Value = "MESSAGERIE"
  ElseIf Val(Replace(CtMess, ",", ".")) > Val(Replace(CtAFFRET, ",", ".")) And NBPALETTES.Value > 0 And NBPALETTES.Value <= 3 Then
    COMPARATIF.Value = "AFFRETEMENT"
  End If
End Sub

ÉDIT : Une idée de simplification

Private Sub COMPARATIF_Change()

  If EnCours = True Then Exit Sub

  'on compare quel est le type de transport (affret ou Mess) le plus avantageux si le nombre de palettes n'excède pas 3
  Select Case Val(NBPALETTES)
    Case 1 To 3
      If Val(Replace(CtMess, ",", ".")) < Val(Replace(CtAFFRET, ",", ".")) Then
        COMPARATIF = "MESSAGERIE"
      Else
        COMPARATIF = "AFFRETEMENT"
      End If
    Case Is > 3
      COMPARATIF = "AFFRETEMENT"
      MsgBox "La messagerie ne peut être utilisée au-delà de 3 palettes pour un même destinataire.  Vous êtes obligé de choisir l'affretement pour cet envoi."
  End Select
End Sub

Re BANZAI,

OK,

En fait voici un exemple ci-dessous. Pour mettre mon résultat en format monétaire je croyais qu'il fallait faire comme le code ci-dessous, mais ça me le met au format texte.

Quel est le code pour mettre au format monétaire et donc numérique?

CtMess.Value = Format(Worksheets("KUEHNE NAGEL MESS").Cells(ligneTarif, colonneTarif), "0.00€")

Bonsoir

Tu ne peux pas mettre un nombre dans un contrôle il sera automatiquement transformé en texte

Que tu écrives

CtMess.Value = 10

Tu obtiendras "10"

Ok,

Je te remercie pour ton aide.

C'est noté pour la prochaine fois.

Bonne soirée.

Rechercher des sujets similaires à "effacer donnees valeurs textbox"