XL 2013 - Problème multiplication 2 textbox

Bonjour le forum ^^

Je suis tombé sur le cas Erreur d'exécution '94' Utilisation incorrecte de Null, j'ai résolu avec le fonction Nz quand le Textbox8 était vide.

En gardant la fonction Nz, je me retrouve avec le Textbox11 = 0 quand le textbox8 est vide.

Condition 1 : Si textbox6, textbox7 et textbox 8 <> "" alors je vois sur ma listbox dernière colonne (8ème) les calculs qui se font parfaitement et Textbox11 qui me fait la somme de toutes les valeurs de la colonne 8

Malheureusement,

Condition 2 : Si textbox6,textbox7 <>"" et texbox8 ="" alors il ne me fait pas le calcul textbox6 * texbox7 et mon textbox11 = 0 et non la somme de la colonne 8 de ma listbox.

Est-ce qu'il y aurait une solution pour que ma condition 2 fonctionne aussi bien que ma condition 1?

Il me faut apparaître le calcul textbox6 * textbox7 sur la colonne 8 et que mon textbox11 me fasse la somme de cette colonne 8 de la listbox1.

Je vous remercie pour votre aide,

Private Sub CommandButton2_Click()
With Me.ListBox1
    .AddItem
    .List(memoire, 0) = Me.TextBox3
    .List(memoire, 1) = Me.TextBox4
    .List(memoire, 2) = Me.ComboBox7.Text
    .List(memoire, 3) = Me.TextBox6
    .List(memoire, 4) = Me.ComboBox8.Text
    .List(memoire, 5) = Me.TextBox7
    .List(memoire, 6) = Me.TextBox8
    If Me.TextBox6 And Me.TextBox7 And Me.TextBox8 <> "" Then
        .List(memoire, 7) = Format(((Me.TextBox6 * Me.TextBox7) * (1 - (Me.TextBox8 / 100))), "Standard")
            If Me.TextBox6 And Me.TextBox7 <> "" And Me.TextBox8 = "" Then
            .List(memoire, 7) = Format((Me.TextBox6 * Me.TextBox7), "Standard")
            End If
    End If
End With
    memoire = memoire + 1

Dim T As Single 'déclare la variable T (Total) / Type à adapter
Dim i As Integer
With ListBox1 'prend en compte la ListBox1 (à adapter)
    For i = 0 To .ListCount - 1 'boucle sur tous les lignes de la ListBox1
        T = Nz(T + .Column(7, i), 0) 'définit le total T (colonne 7 et la valeur c'est la "8ème" colonne)
    Next i 'prochaine ligne de la boucle
    TextBox11.Value = T 'renvoie dans la TextBox1 le total T (à adapter)
    Sheets(2).Range("A11").Resize(.ListCount, .ColumnCount) = .List 'renvoie la valeur dans la cellule A1 la les éléments de la ListBox1
End With 'fin de la prise en compte de la ListBox1

End Sub

Namco

Salut Namco,

tu as imbriqué ta 2e condition DANS la 1e : elle ne pouvait donc JAMAIS s'exécuter.

Non-testé mais cela doit être correct.

    If Me.TextBox6 And Me.TextBox7 And Me.TextBox8 <> "" Then .List(memoire, 7) = Format(((Me.TextBox6 * Me.TextBox7) * (1 - (Me.TextBox8 / 100))), "Standard")
    If Me.TextBox6 And Me.TextBox7 <> "" And Me.TextBox8 = "" Then
        Me.TextBox8.Value = 1
        .List(memoire, 7) = Format((Me.TextBox6 * Me.TextBox7), "Standard")
    End If

A+

Salut Curulis57,

En effet, cela fonctionne très bien.

Je ne savais pas qu'on pouvait faire 2 if dans un seul bloc, je pensais qu'il fallait faire un If puis end if puis ouvrir un autre if etc...

En tout cas problème résolu ^^

Merci pour ton oeil de lynx

Namco

Rechercher des sujets similaires à "2013 probleme multiplication textbox"