Elargir la fonction" merge "à l'ensemble du tableau (voir sujet en page 2)rRESOLUE

br44

XLDnaute Impliqué
Bonjour a toutes et à tous ,

j'ai recherche sur le forum une procédures qui permettrais de rentrée une liste de clients dans un tableau par l'intermédiaire d'une combo box associer une texte box située dans userform ; à moins que cela ne soit pas possible ?

j'ai essaye d'adapter une procédure trouver sur le forum mais rien me fonctionne le souci c'est que je n'est aucun résulta qui s'affiche dans mon tableau .

je vous joint bien entendu un fichier en exemple ; je voudrais alimentée le tableau située sur le feuille "Fiche clients " .

Vous remerciant par avance pour le coup demain et suis désoler de vous demander une chose aussi basic que celle ci ;mais là je tourne en rond et cela m'énerve .

pour infos il s'agit simplement d'entrer un n° client et le nom dans les deux premières colonnes du tableau . ouvertures de l'userform part les touches : ctrl + a

j'aurais un autres fonction à rajouter avant l'enregistrement . si vous pouviez me donner le code
je me débrouillerais pour le rentrer et de le completer moi même .

inséré un nouvelle onglet portant le n° du clients qui lui a était attribué.

vous remerciant par avance pour tout je vous dit à bientôt . br44
 

Pièces jointes

  • essais suivi client pour le forum.xls
    25.5 KB · Affichages: 71

CHALET53

XLDnaute Barbatruc
Il ne faut pas changer le nom de l'USF
Quelque soit le nom de L'USF, une procédure d'initialisation de l'USF s'écrit toujours :
Private Sub Userform_Initialize
Les bugs sont de différentes natures
Ainsi, par exemple, tu veux alimenter la textbox NomClient comme une combobox.

Peux-tu préciser ce que tu veux faire :
Les infos que tu veux voir sur l'USF à son ouverture
Les infos que tu saisis
et ce que tu veux faire du résultat lorsque les infos sont renseignées

J'essaierai de voir si je peux t'aider

A suivre
 

laetitia90

XLDnaute Barbatruc
bonjour br44,CHALET53:)
perso je partirais comme cela apres il faut plus d'explications exemple: comment remplir les articles
avec liste produit ect...
VB:
Option Explicit
Dim i As Byte
Private Sub userform_initialize()
NumClient.List = Feuil1.Range("a6:b65").Value
Produit.List = Feuil2.Range("a12:a122").Value
For i = 1 To 4: Semaine.AddItem i: Next i
For i = 1 To 7: Journée.AddItem i: Next i
End Sub
Private Sub NumClient_Click()
NomClient = NumClient.List(NumClient.ListIndex, 1)
End Sub
 

br44

XLDnaute Impliqué
bonjour laetitia 90 ,chalet 53 ,le forum ,

merci pour ton aide laetitia 90 je vais teste ta solution et revenir vers vous pour vous tenir au courant .
En se qui concerne le remplissage des article . je comptais voir cela aussi mais il faut que comprenne avant pourquoi ma procédure n'a pas fonctionner car le but est de sélectionner un article de la liste produits et de le faire affiché dans une texte box après je n'aurais plus cas remplir les quantités .
sachant que je peux avoir de 1 a 8 produits à choisir et a place . C'est pur cela qu'il faut que je réfléchisse par quel moyen je vais valider mais choix.

A bientôt et merci pour le coup de pouce
 

br44

XLDnaute Impliqué
Bonjour laeticia90 et chalet 53 , le forum .
laeticia90 , merci beaucoup pour ta proposition qui fonctionne très bien et qui à pour avantage d'alléger le programme ; pourrais -tu m'expliqué où ai-je commis une erreur dans ma procédure pour qu'elles ne fonctionne pas ?

Deuxièmement j'ai repris le bouton enregistrer de l'userform pour le placer a coter de la liste de choix afin que je puisse valider chacun de éléments de la liste pour les affecter au textbox " articles " située plus bas, mais il faut que je règles un problème de tabulation qui par dans tout les sens. De plus j'ai toujours un problème pour affichage ,mais bon un problème après l'autres .

Au départ je voulais mètres des listes de choix à la places des textbox "articles " pour faciliter la selection des articles mais cela oblige de refaire la procedure 8 fois une par liste. Quel serez vos choix et quand pensez-vous ?

je vous remet un fichier avec les dernière modifications un peux plus tard . A bientôt et merci beaucoup pour l'aide et les conseils . Amicalement Br44
 

br44

XLDnaute Impliqué
Bonsoir laetitia90 ,Chalet 53et toute forum bien sur

un grand merci à toi laetitia90 pour le fichier joint en exemple c'est tout à fait see que je voulais faire .
Voilà je réfléchie a meilleur méthode pour remplir le tableau a partir du bouton "enregistrer " mais j'ai un souci avec ma procédure de repartition .Il déclenche: une erreur de compilation au niveau de la variables C1 ,C2, etc. en disant :"le membre existe déjà dans un module objet dont le présent objet est dérivé ".

pourrais-tu me dire se cela signifie ,car je n'est que deux modules chacun deux contenant les macro d'ouvertures des usf . Donc je mets ma tentative ci dessous .Si vous pouvez me dire quel erreur je fait cela m'aiderais à comprendre car la je n'y comprend plus rien . Une piste pour le premier après je l'appliquerais pour les autres évidement .
le but étant de répartir les quantités attribué à chaque article sélectionné dans chaque liste . sachant que le nombres d'article sélectionné peut aller de 1 à 8 . .
voici 2 exemples :
1) si je peux sélectionné : 1 jus pomme
1 jus d'orange
1 maïs
il faudrait que dans le tableau en face de chaque nom de la colonne A de la feuille "Détail Fiche Client " il y 1 en colonne 1 pour le premier 1 dans la deuxième colonne et 1 dans le troisième .

2 ) mais si je sélectionne la fois suivante ; 1 hamburger
il ne faudra pas qu'ils apparaisse en colonnes 9, mais qu'ils reparte de la 3 colonne et donc 1 colonne 4 .
voilà se que j'essaye de faire ;
si il pouvait y
Voici le programme :

Option Explicit
'Déclare la variable I
Dim i As Byte
'Déclare la variable P
Private P As Range
'Déclare la variable Cel
Private Cel As Range
'Déclare les variables de C1 à C8
Dim C1, C2, C3, C4, C5, C6, C7, C8 As Integer

Private Sub userform2_initialize()
NumClient.List = Feuil1.Range("a6:b65").Value
For i = 1 To 4: Semaine.AddItem i: Next i
For i = 1 To 7: Journée.AddItem i: Next i
For i = 1 To 8: Me("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
End Sub

Private Sub C1_Change()
'Définit le variable p
Set P = Sheets("Détail Fiche Client").Range("B10:BE10").Column
'Boucle sur l'ensemble de la plage P
For Each Cel In P
'récupère C2 pour modification
'boucle sur l'ensembles des textbox " Quantité" et decale
'en fonction de la dernière colonne occupé
For i = 2 To 9 Step 8
'récupère C1 pour modification
C1 = Cells.Find(C1.Value, LookIn:=xlValues).Row
Quantité1.Value = Cells(C1, 2).Value
End Sub

Private Sub C2_Change()
'récupère C2 pour modification
For i = 2 To 9 Step 8
C2 = Cells.Find(C2.Value, LookIn:=xlValues).Row
Quantité2.Value = Cells(C2, 3).Value
End Sub

Private Sub C3_Change()
For i = 2 To 9 Step 8
'récupère C3 pour modification
C3 = Cells.Find(C3.Value, LookIn:=xlValues).Row
Quantité3.Value = Cells(C3, 4).Value
End Sub

Private Sub C4_Change()
For i = 2 To 9 Step 8
'récupère C4 pour modification
C4 = Cells.Find(C4.Value, LookIn:=xlValues).Row
Quantité4.Value = Cells(C4, 5).Value
End Sub
Private Sub C5_Change()
For i = 2 To 9 Step 8
'récupère C5 pour modification
C5 = Cells.Find(C5.Value, LookIn:=xlValues).Row
Quantité5.Value = Cells(C5, 6).Value
End Sub
Private Sub C6_Change()
For i = 2 To 9 Step 8 'récupère C6 pour modification
C6 = Cells.Find(C6.Value, LookIn:=xlValues).Row
Quantité6.Value = Cells(C2, 7).Value
End Sub
Private Sub C7_Change()
For i = 2 To 9 Step 8
'récupère C7 pour modification
C7 = Cells.Find(C7.Value, LookIn:=xlValues).Row
Quantité7.Value = Cells(C7, 8).Value
End Sub
Private Sub C8_Change()
For i = 2 To 9 Step 8
'récupère C8 pour modification
C8 = Cells.Find(C8.Value, LookIn:=xlValues).Row
Quantité8.Value = Cells(C8, 9).Value
End Sub

Private Sub NumClient_Click()
NomClient = NumClient.List(NumClient.ListIndex, 1)
If NumClient <> "" Then Frame1.Visible = 1
End Sub
Private Sub CommandButton1_Click() 'Enregistrement des informations.
'j'affiche les informations suivantes: Période ,N°et Nom du clients
Sheets("Détail Fiche Client").Range("B6").Value = Période.Value
Sheets("Détail Fiche Client").Range("F6").Value = NumClient.Value
Sheets("Détail Fiche Client").Range("L6").Value = NomClient.Value
End Sub

et vous remerciant par avance et espérant avoir été claire dans ma demande je vous dit à bientôt .
Amicalement br44
 

laetitia90

XLDnaute Barbatruc
re :)
je vais repondre a la qst...1 (variable)

quand tu ecris n'importe quel variables de cette facon
Dim C1, C2, C3, C4, C5, C6, C7, C8 As Integer

seulement la derniere dans ton cas est integer les autres variant par defaut
on devrait ecrire

Dim C1 As Integer, C2 As Integer, C3 As Integer ect...
entre autre Integer plus utilise on declare directement en Long

il faut comprendre que C1, C2 ECT... sont des controls de l'userform ou ME
on ne les declare pas dim C1 as combobox ect... sert a rien

For i = 1 To 8: Me("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
on peut ecrire
For i = 1 To 8: Me.Controls("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
ou
For i = 1 To 8: Controls("C" & i).List = Feuil2.Range("a12:a122").Value: Next i

dans certains cas on peut le faire dim c as controls
exemple

Dim c As Control
For Each c In Controls
If TypeName(c) = "ComboBox" Then MsgBox c.Name
Next c

Dim c As Control
For Each c In Controls
If TypeOf c Is MSForms.ComboBox Then MsgBox c.Name
Next c

pour repondre a la qst2... beaucoup de mal a decoder ce que tu veus faire exactement:(:(:(
une approche quand meme sans beaucoup de conviction j'ai modifier le frame pour plus de simplicite
apres on verra
 

Pièces jointes

  • essais suivi client pour le forum.xls
    154 KB · Affichages: 63
Dernière édition:

br44

XLDnaute Impliqué
Bonsoir laetitia90 ,le forum .

Tout d'abord un grand merci pour ta patience et pour toutes ses explications très intéressantes. je tien aussi à te dire que la première version de ton usf ma conviens parfaitement et qu'il fonctionne bien .donc la dessus pas de souci . le temps de faire des essais et je te tiens au courant .

pour êtres plus claire il s'agit de remplir le tableau avec une colonne de décalage . et de repartir de la première colonne vides .Mais d'après se que j'ai lu cela devrait être bon .

avec tout mes remercîments je te dis a plus .Amicalement BR44
 

br44

XLDnaute Impliqué
Bonsoir à toutes et à tous , laetitia90 ,Chalet53

Afin que nous puissions continuer mon projet je vous mets un nouveau fichiers en exemples avec je une illustrations du résulta final que je souhaiterais obtenir .
les modifications que j'ai fait sont plus en termes de employer que de modification de programme

j'ai remplace le terme s produits par le termes articles sur le lignes 10 pour que se moins ambiguë (voire en feuil 1 du fichier joint ) .

les points qu'ils faut voir maintenant c'est de savoir comment je peux repartir de 1 après la première
commandes . ?

Soit en se basant sur la dernière colonnes pleine où alors partir de la premières colonnes vides et en fonction du changement du n° de commandes .

voilà où j'en suis pour l'instant .je vous remercie de vôtres patiences et m'excuses e vous solliciter autant . désoler du retard pour le dépôt du fichier . Amicalement Br 44
 

Pièces jointes

  • ESSAIS FORUM 2.xls
    173 KB · Affichages: 59

br44

XLDnaute Impliqué
Bonsoir à toutes et tous Laetitia 90, Chalet53

Bon depuis dernier message j'ai réfléchis à une solution . seulement cela ne se passe pas comme je voudrais et pourtant j'ai essayer de refaire le même principe de macro que laetitia90 , mais le résultat obtenue n'est pas celui voulu ,alors je reviens vers tout Penot et pas fière de ne pas êtres capable de faire un truc bien . mais bon avec de la patience et quelques conseils je devrais bien y arrivé .

Bon j'ai rajouter 8 textbox dans l'usf pour numéroter les colonnes je les appelés NC1 nc2 ...Nc8
comme pour les listes de choix et les quantité .

je me suis donc baser sut ta macro qui à servi à associé les noms de clients et les numéros .
Pour faire la même opération mais entres les listes de choix et le n° de colonnes mais j'aurais souhaiter que les N° apparaissent directement dans les textbox ( NC 1 = 1 , NC2= 2, nc3 =3 et nc8=8 )
et qu'il se place dans la ligne 10 du tableau de feuille 2.
Pour continuer de remplir la ligne 10 il faudra repartir de la première colonne vide en repartant de 1
exemple ; j'ai une premières commande de 3 articles

je vais donc choisir le premier article dans la première liste et NC1 sera 1 le deuxième article dans la 2èmme et nc2 à 2 visible idem pour la troisième

A l'affichage il y auras 1 2 3 dans les b,c,d de la ligne 10

pour la commande suivante le 1 commencera en E ,F ,G 10 ..... suivant le nombre d'article .

je joint fichier avec ma macro et les tentatives pour delimiter la dernière colonne pleine (+1 pour la première colonne vide.)

et vous remerciant beaucoup pour le coup de main et surtout pour vôtres patience .Amicalement Br 44
 

Pièces jointes

  • ESSAIS FORUM 2.xls
    207.5 KB · Affichages: 61

laetitia90

XLDnaute Barbatruc
re,:)
pas simple ton projet !!!
pour user j'ai gardé meme presentation frame 1 visible seulement si combo clients <>nothing a terme ...plus viable va eviter beaucoup erreur de frappe je mettrais même les commandbuttons
autrement mettre un algo... sur cette presentation c'est pas simple de plus on se retrouve a fusionné des cells
qui peut poser des pb.. avec ce qu'on va faire de ce tableau apres ...... je connais pas la finalité ????
une approche assez brut

ps j'ai pas utilise les textboxs pour les colonnes de plus j'ai bloque la frappe dans combos articles
on peut choisir seulement present dans les listes il faudrait egalement traiter les quantites
condition =not is numeric
 

Pièces jointes

  • ESSAIS FORUM 2.xlsm
    135.6 KB · Affichages: 61
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 242
Messages
2 086 528
Membres
103 243
dernier inscrit
SAH