Formulaire Cellule Fusionnée

excelimprover

XLDnaute Nouveau
Bonjour à tous !!

Alors voilà je suis pas une flèche en Excel mais j'essaie de chercher et de faire ce que je peux avec mon petit niveau cependant la je coince je ne sais pas comment faire.
Est ce que éventuellement si vous avez 5 minutes vous pouvez jeter un oeil à mon fichier excel afin de m'aider svp ?
Merci d'avance pour votre aide précieuse !! :) :)
 

Pièces jointes

  • Pour Aide Internet1.xlsm
    57 KB · Affichages: 11

Staple1600

XLDnaute Barbatruc
Bonsoir

excelimprover (Bienvenue sur le forum)
Est-ce qu'éventuellement tu as 5 minutes pour détailler ta question dans ton message?
(Ce qui permettra de savoir sans inutilement télécharger un fichier si on a intérêt et/ou compétence pour résoudre ton problème) ;)
 

excelimprover

XLDnaute Nouveau
Ben fait j'ai fais un formulaire avec virtual basic mais:

1. Je voudrais que mon formulaire prenne en compte les cellules fusionnées pour exemple le compte 99850 / 006 n'affiche pas de commentaire comme pour le compte 55800 / 008
2. Si même valeur comme par exemple A16:A22, je voudrais pouvoir fusionner les cellules pour ainsi ne pas devoir à chaque fois copier coller la même valeur afin qu'elle apparaisse dans le formulaire dans la textbox correspondante
3. Dans le formulaire je voudrais que le combobox2 fasse exactement 3 caractères et pas plus et le combobox1 5 caractères et pas plus
4. Je voudrais également avoir la possibilité de pouvoir faire une recherche par le Nom de la société client ou encore par pays (comboboxlist ?)
5. Je voudrais pouvoir à partir du formulaire pouvoir ajouter un compte client en rentrant tous les champs depuis le formulaire et que ca créée automatiquement une nouvelle ligne dans le tableau dans excel

Merci pour votre aide :)
 

Staple1600

XLDnaute Barbatruc
Re

Alors comme il tard, je vais déjà te répondre pour le point 3)
Utilises la propriété MaxLength pour limiter le nombre de caractères
Tu affiches la fenêtre Propriétés dans VBE puis tu sélectionnes ton ComboBox
Ci-dessous exemple pour un TextBox
bSDQp.png

Et tu y indiques le nombre de caractères MAX
Pour le reste , je laisse mes petits camarades de jeu prendre la relève
et je vais moi au dodo ;)
 

Staple1600

XLDnaute Barbatruc
La preuve par l'image
(et cette fois-ci dodo, vraiment)
J'ai testé sur un Userform avec un ComboBox
(code VBA à mettre dans l'userform, juste pour le test)
Code:
Private Sub UserForm_Initialize()
ComboBox1.List = Array("12345", "6789", "ABC", "12459789")
End Sub
Et voila le résultat ;)
01exMax.jpg
 

excelimprover

XLDnaute Nouveau
Oui cela marche mais pardon je me suis mal exprimé en fait je crois car effectivement je ne peux pas taper + de 3 caractères mais seulement c'est pas + de 3 caractères de large que je voudrais car actuellement il n'y en a 6 :

1027692


J'aurais aimé que la largeur de ma combobox2 s'arrête après le chiffre 3.
Et je voudrais aussi qu'il m'affiche 001 et pas 1.

Enfin pour afficher dans un textbox la valeur de plusieurs cellules fusionnées j'imagine que cela n'est pas possible ?

Merci en tous cas pour votre aide et de la rapidité à laquelle vous fournissez une réponse c'est vraiment très appréciable ! :)

Bon dimanche à tous !!!
 

excelimprover

XLDnaute Nouveau
J'ai essayé et cela ne fonctionne pas:

1027695


Il me réduit bien la taille de la combobox2 mais dans la liste j'ai toujours une largeur de 6

Je sais que c'est à cause cette ligne de code dans le formulaire: (le resize que j'arrive pas a enlever sans tout faire bugger):

Me.ComboBox2.List = début.Offset(, 1).Resize(début.MergeArea.Count, 1).Value

Une idée ?
 

excelimprover

XLDnaute Nouveau
Mon maxlenght pour la combobox2 est bien à 3 maximum et Autosize est aussi sur True mais ca ne fonctionne pas
Et j'ai essayé de mettre le code Me.ComboBox2.List = Array("123") mais ca renvoie message erreur je sais pas comment l'adapter pour qu'il dépende de la colonne H comme dans mon code
 

Staple1600

XLDnaute Barbatruc
Cela par contre j'ai
Ou plutôt une suggestion/conseil
Quand j'utilise Excel comme base de donnée avec un Userform pour remplir celle-ci
(et d'ailleurs cela vaut aussi sans Userform)
Je respecte les règles de base (voir ici par exemple)
La première ligne= entête
un enregistrement= 1 ligne
pas de cellule fusionnée
pas de ligne vide
etc...

En partant sur cette pratique, tout de suite cela devient beaucoup plus simple, non ?
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

Je sais que c'est à cause cette ligne de code dans le formulaire: (le resize que j'arrive pas a enlever sans tout faire bugger):
Me.ComboBox2.List = début.Offset(, 1).Resize(début.MergeArea.Count, 1).Value
Ce Resize n'a rien à voir avec la largeur de ta liste déroulante, c'est la taille de ta plage que tu modifies.
Tu peux modifier la largeur du contrôle, mais pas celle de la liste qui se déroule.

Et je voudrais aussi qu'il m'affiche 001 et pas 1.
Soit tu mets H en Texte avec les 00, soit tu formates les items un par un :
VB:
Private Sub ComboBox1_click()
    Dim datas, i As Long
    Set début = f.Range("G2:G" & f.[H65000].End(xlUp).Row).Find(what:=Me.ComboBox1.Value)
    datas = début.Offset(, 1).Resize(début.MergeArea.Count, 1).Value
    For i = 1 To UBound(datas)
        Me.ComboBox2.AddItem Format(datas(i, 1), "000")
    Next i
End Sub
eric
 

Statistiques des forums

Discussions
312 321
Messages
2 087 233
Membres
103 497
dernier inscrit
JP9231