Aide sur code VBA

Amilo

XLDnaute Accro
Bonjour le forum,

Fin octobre 2009, j'avais envoyé ce fichier ci-joint afin de solliciter votre aide sur certaines petites optimisations,

Papou-net m'avait rendu un grand service à cette occasion...

Je viens de découvrir aujourd'hui, une autre erreur dans ce fichier,

En effet lorsque j'insère une virgule dans le texte du produit,(voir en exemple cellule B2 en jaune de l'onglet "Code" du fichier),

Le résultat en cellule D16 de l'onglet "Devis" ne donne pas la désignation complète du produit et sépare dans la liste de choix, le texte en deux lignes séparées !!

Pouvez-vous svp m'aider à résoudre ce petit problème.

Merci d'avance

Slts
 

Pièces jointes

  • devis vba.zip
    20 KB · Affichages: 25
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Aide sur code VBA

Bonsoir Amilo,

Ton problème est normal, puisque tu utilises la virgule comme séparateur dans ta fonction (voir code en rouge) :

Code:
Private Function F_CODE(ByVal A As String, ByRef PremierItem As String) As Variant
' La fonction retourne une série et modifie le second paramètre en entrée
Dim Boite As Variant

F_CODE = ""
If (A <> "") Then
  Dim Cellule As Range, Plage As Range, Boucle As Long
  ' Plage de recherche des valeurs Ligne 1
  Set Plage = Sheets("Code").Range("A1:P1")
  For Each Cellule In Plage
    ' Si l'item est trouvé
    If (Cellule.Value = A) Then
      ' Remplir liste avec sous items avec valeurs de colonne
      Boucle = 1
      While (Cellule.Offset(Boucle, 0).Value <> "")
        F_CODE = F_CODE & Cellule.Offset(Boucle, 0).Value & [COLOR="Red"][B]","[/B][/COLOR]
        Boucle = Boucle + 1
      Wend
      ' Enlever dernière virgule mis en trop à cause de la boucle
      F_CODE = Mid(F_CODE, 1, Len(F_CODE) - 1)
      Exit For
    End If
  ' Recherche du premier item de la série
  Boite = Split(F_CODE, ",")
  ' Si au moins 1 élément
  If (UBound(Boite) > 0) Then
    PremierItem = Boite(0)
  End If
End If

Tu ne peux donc pas utiliser de virgule dans tes noms de produits, ou bien tu changes de symbole séparateur dans ta fonction.

Espérant t'avoir éclairé.

Cordialement.

PS : je continue de travailler sur ton journal de caisse, qui avance progressivement.
 

Amilo

XLDnaute Accro
Re : Aide sur code VBA

Bonjour Papou-net,

Merci de votre aide et pour cette info, c'est bon à savoir.

Je n'avais aucune idée de là où ça pouvait venir, c'est désormais fait.

Je pense que je modifierai la virgule par un autre symbole, à voir...

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia