Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 23h23   #1
Invité régulier
 
Homme
Inscription : novembre 2010
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2010
Messages : 36
Points : 9
Points : 9
Par défaut Pb somme variables

Bonsoir,

En fait, j'ai réalisé un code qui me permet de rechercher une valeur, saisie dans un combo, dans une feuille. Lorsque cette valeur est trouvée(A), il recherche une autre valeur sur la même ligne(B). Une fois cette valeur retrouvé(B), je souhaite ajouté la valeur d'un caption à cette valeur(B) pour me donner une nouvelle valeur(B') à mettre dans la cellule initiale de B.

Mais le code ne fonctionne mal. En effet si dans la cellule il y a "3" et dans le caption "4" j'ai une valeur affichée de "34" au lieu de "7"...

Quelqu'un a-t-il une solution..voici mon code...


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub CommandButton1_Click()
 
Dim nom As String
Dim prod_a_entrer As String
Dim stock_actuel As String
Dim stock_actuel2 As Integer
 
L = 2
K = Worksheets("BasedeDonnees").Range("A65536").End(xlUp).Row
 
If ComboBox1.Value <> "" And SpinButton1.Value <> 0 Then
    Sheets("basededonnees").Unprotect
    Worksheets("BasedeDonnees").Activate
    nom = ComboBox1.Value
 
    For L = 2 To K
        If Worksheets("BasedeDonnees").Cells(L, 3).Value = nom Then
            stock_actuel = Worksheets("BasedeDonnees").Cells(L, 10).Value
            prod_a_entrer = Label7.Caption
            stock_actuel2 = stock_actuel + prod_a_entrer
            Worksheets("BasedeDonnees").Cells(L, 10).Value = stock_actuel2
            MsgBox (" Vous avez rentré " & prod_a_entrer & " article(s) " & nom & " dans le stock")
            Unload Entreearticle
            MenuGeneral.Show
            End If
      Next
      Sheets("basededonnees").Protect
      End If
End Sub
Merci

Ac
igno42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 00h11   #2
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

Les 2 variables prod_a_entrer et stock_actuel sont déclarées de type string.
Il est donc normal que tu obtiennes : "3" + "4" = "34"
Tu dois convertir ces données en numérique.

Par exemple, remplacer

Code :
1
2
Dim stock_actuel2 As Double
stock_actuel2 = CDbl(stock_actuel) + CDbl(prod_a_entrer)
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web