Besoin d'aide pour macro

Luc62300

XLDnaute Nouveau
Bonjour a tous.
N'étant pas un crack comme certains membre de ce forum, je m'arrache les cheveux pour la création d'une macro sur Excel 2010.
Pour la gestion de mes stock, je pointe le matériel sortant a l'aide d'un lecteur de code barre.
Mon code barre contiens 3 informations différentes, séparés par un ou plusieurs espace.
A chaque code scanné, les 3 informations se retrouvent donc dans la même cellule, et je ne trouve pas la solution pour séparer les 3 infos en 3 cellules.
Je vous met en PJ une feuille Excel au cas ou mes explications ne sont pas claires.
Je vous remercie d'avance pour votre précieuse aide :D
 

Pièces jointes

  • A suprimer, classeur pour forum.xlsx
    9 KB · Affichages: 31
  • A suprimer, classeur pour forum.xlsx
    9 KB · Affichages: 36
  • A suprimer, classeur pour forum.xlsx
    9 KB · Affichages: 30

Modeste

XLDnaute Barbatruc
Re : Besoin d'aide pour macro

Bonjour Luc62300 (on dirait un verset ;))

Le problème c'est que dans tes 3 malheureux petits exemples, il y a aussi des espaces qu'apparemment il ne faut pas considérer comme des "séparateurs".
Il faudrait donc que tu précises ce qui va permettre de déterminer à quel endroit on doit appliquer une "coupure" ...

Tu aurais pu nous donner un aperçu de ton code existant, si on doit essayer d'y articuler un bout supplémentaire.

Luc6470
 

Luc62300

XLDnaute Nouveau
Re : Besoin d'aide pour macro

Bonsoir. Merci pour cette réponse rapide. Les espaces qu'il ne faut pas considérer comme séparateurs peuvent être retirés lors de la création de mon code barre, c'est vrai que je n'y avais pas pensé. Concernant l'aperçu de mon code existant, comment dire...
J'ai déjà testé plusieurs macros que j'ai pu trouver sur ce forum, aucune n'était fonctionnelle pour mon cas, et de moi méme, je suis dans l'incapacité de la créé a partir de zéro, je n'ai qu'une maitrise trés basique d'Excel, et malheureusement trés peux de temps pour me former. C'est pour cette raison que je cherche une âme charitable capable de m'aider à la création de cette macro, en me l'expliquant si possible. Merci d'avance pour votre aide :)
 

Canard29

XLDnaute Nouveau
Re : Besoin d'aide pour macro

Bonjour,
Je ne suis pas un expert, mais j'ai la chance d'avoir connu par ce forum, la subtilité de la décourpe par STXT,
lorsque tu tapes =stxt le format des paramètres s'affiche en dessous. J'ai donc résolu ton problème, mais d'une ligne à l'autre le nombre de blancs interval n'est pas constrant, pour ne rien louper j'ai donc dû prendre plus large, ce qui fait que dans certaines cellules découpées tu trouveras des blancs en avant ou en arrière. ce qui pourrait géner pour des comparaisons. (En fait ce ne sont pas des "blancs" mais la comparaison ne marche pas) Bon courage :cool:

Resultat après scan des codes bares :

bh 362 a11u021003143 432 447 bh 362 a11u02100314 432 44 a11u02100314
BH362 A11U021001982 392 767 BH362 A11U021001982 392 767 F3 non= C3
bh 362 a11u021003144 520 972 bh 362 a11u02100314 520 97 non


Ce que j'aimerai obtenir :

bh 362 a11u021003143 432 447
BH362 A11U021001982 392 767
bh 362 a11u021003144 520 972
 

sousou

XLDnaute Barbatruc
Re : Besoin d'aide pour macro

Bonjour à tous

Pour le fun!

ici il suffit de choisir dans la macro le nombre minimum d'espaces (ou autres) qui font office de séparateurs

j'ai choisi dans ce cas que plus de deux espaces veux dire chaine de séparateurs

pour tester doubleclick sur une des cellules concernées.
 

Pièces jointes

  • A suprimer, classeur pour forum-1.xlsm
    16.1 KB · Affichages: 36
  • A suprimer, classeur pour forum-1.xlsm
    16.1 KB · Affichages: 36
  • A suprimer, classeur pour forum-1.xlsm
    16.1 KB · Affichages: 30

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Besoin d'aide pour macro

Bonsoir Luc62300, le forum,

Une macro évènementielle qui est activée quand une cellule de la plage A3:A5 est modifiée (on peut changer la plage au sein de la macro). Elle est basée sur le fait que le deuxième terme à extraire a une longueur supérieure à celles des autres termes. Par conséquent, le nombre des espaces entre termes n'intervient pas dans la macro.

Le code de la macro dans le module de la feuille "Feuil1":
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim y$, tablo, max&, s$, i&, j&

Application.EnableEvents = False
  If Not Intersect(Target(1, 1), Range("A3:A5")) Is Nothing Then
    Application.EnableEvents = False
    y = Application.WorksheetFunction.Trim(Target(1, 1))
    tablo = Split(y, " ")
    If UBound(tablo) - LBound(tablo) + 1 >= 3 Then
      max = 0
      For i = 1 To UBound(tablo)
        If Len(tablo(i)) > Len(tablo(max)) Then max = i
      Next i
      j = InStr(y, tablo(max))
      Target(1, 1) = Trim(Left(y, j - 1))
      Target(1, 2) = tablo(max)
      Target(1, 3) = Trim(Mid(y, j + Len(tablo(max))))
    Else
      Target(1, 2).Resize(, 2) = ""
    End If
  End If
Application.EnableEvents = True
End Sub
 

Pièces jointes

  • Luc62300-decouper-v1.xlsm
    19.7 KB · Affichages: 38
Dernière édition:

Canard29

XLDnaute Nouveau
Re : Besoin d'aide pour macro

Bonjour,
Je ne suis pas un expert, mais j'ai la chance d'avoir connu par ce forum, la subtilité de la décourpe par STXT,
lorsque tu tapes =stxt le format des paramètres s'affiche en dessous. J'ai donc résolu ton problème, mais d'une ligne à l'autre le nombre de blancs interval n'est pas constrant, pour ne rien louper j'ai donc dû prendre plus large, ce qui fait que dans certaines cellules découpées tu trouveras des blancs en avant ou en arrière. ce qui pourrait géner pour des comparaisons. (En fait ce ne sont pas des "blancs" mais la comparaison ne marche pas) Bon courage :cool:
Je m'aperçois que je n'ai pas pris la bonne icone de pièce jointe, ce qui rend le résultat illisible, je joins donc le classeur, ma solution réside dans la formule des cellules de droite, mais je vois que d'autres contribution sont plus efficaces.
 

Pièces jointes

  • A suprimer, classeur pour forum.xlsx
    9.2 KB · Affichages: 17
  • A suprimer, classeur pour forum.xlsx
    9.2 KB · Affichages: 26
  • A suprimer, classeur pour forum.xlsx
    9.2 KB · Affichages: 26

Staple1600

XLDnaute Barbatruc
Re : Besoin d'aide pour macro

Bonjour à tous


Un solution par formules
(peut-être déjà soumise, mais cela je l'ignore n'ayant ouvert que le fichier du message #1 ;))
A10 => =GAUCHE(SUPPRESPACE(A3);6)
B10 => =GAUCHE(SUPPRESPACE(STXT(SUPPRESPACE(A3);7;15));13)
C10 => =DROITE(SUPPRESPACE(A3);7)
en recopier ensuite vers le bas
 

Discussions similaires

Réponses
7
Affichages
581

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 989
dernier inscrit
jralonso