Gerer deux classeurs avec un seul userform
Bonsoir
désolé du derangement, je suis nouveau ici, j'ai besoin d'aide
j'ai deux classeurs que je dois remplir mais tout dans un meme dossiers, je ne veux pas remplir un classeurs avec un useform et l'autre avec un autre userform.
J'aimerais savoir s'il serait possible de remplir les deux classeurs qui comportent plusieurs feuilles a l'aide d'un seul userform pour que dans le userform quand je remplir les informations et que je clique sur le bouton de commande qui valide, les informations se dirigent dans les classeurs qui leurs sont destiné
J'ai un classeur Client et un classeurs produit .
Le classeur client possede plusieurs feuilles en fonction des noms des clients et le deuxieme classeur a des feuilles qui ont des noms de produit.
Les differentes feuilles s'ajoutent automatiquement quand le mois change (a l'ouverture du fichier)
j'arrive a enregistrer dans l'autre classeurs mais pas comme je veux, je veux pouvoir a l'aide d'un combobox avoir accès a toutes les feuilles des deux classeurs et ensuite enregistrer dans la feuille qu'on désire
Sinon afficher toutes les feuilles du mois actuel et envoyer les informations la ou elles doivent etre
Voici mon bouton valider
Private Sub CommandButton1_Click()
Dim numYear As Integer, numClient As Integer
numClient = InputBox("Veuillez saisir le numéro Client")
numYear = InputBox("Veuillez saisir l'année")
With Workbooks("TAF 1").Sheets("CLIENT " & numClient & " - " & numYear)
x = Now
With Workbooks("TAF 1").Sheets("CLIENT3 - 2020")
.Range("m1") = ComboBox1.Value
.Range("A5") = TextBox2.Text
MsgBox (TextBox2.Text)
.Range("B5") = TextBox4.Text
.Range("C5") = TextBox6.Text
.Range("D5") = TextBox3.Text
.Range("E5") = TextBox12.Text
.Range("F5") = TextBox7.Text
.Range("G5") = TextBox10.Text
.Range("H5") = TextBox11.Text
.Range("I5") = TextBox8.Text
.Range("N5") = x
.Range("J5") = TextBox13.Text
End With
ComboBox1.Text = ""
TextBox2.Text = ""
TextBox6.Text = ""
TextBox3.Text = ""
TextBox12.Text = ""
TextBox7.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox13.Text = ""
TextBox4.Text = ""
MsgBox ("ENREGISTREMENT EFFECTUER")
End With
End Sub
Bonjour,
voici un exemple pour choisir le fichier et les feuilles en fonction du fichier
Bonjour comment ça va ?
je n'arrive pas a faire le debogage, on me met une erreur d'execution '9' l'indice n'appartient pas a la selection.
J'aimerais aussi souligner que CLIENT est dans un classeur et PRODUIT dans un autre classeur.
CLIENT a des feuilles qui portent les nom des client et pareil pour produit.
Ex : Le client ABI achete 2 chaussures Puma
l'information va dans la feuille ABI qui se trouve dans le classeur Client et aussi d'autre element de l'information vont dans le classeur Produit plus precisement dans la feuille PUMA
J'espere qu'on se comprend
Bonjour, je peux vous envoyer mes deux classeurs afin de voir le probleme ?
re,
as-tu adapter cette ligne pour le nom de ton autre fichier ?
Set wk2 = Workbooks("Produit.xlsm") 'fichier Produit à adapter
je vous ai envoyé mes fichier en piece jointe
mon probleme est que je veux pouvoir envoyer les informations dans les feuilles sélectionnée.
mais c'est pas le cas, les informations vont sur la feuille de depart
Grand merci a vous. ça marche parfaitement.
vraiment merci, mais vous avez vu mon bouton qui me permet de créer une nouvelle feuille client ?
je voudrais que lorsque je clique dessus, un message me demandant le nom s'affiche afin de créer la feuille avec un nom .
Dedans aussi j'ai fais une manipulation pour créer les feuilles quand un nouveau mois arrive, mais je ne sais pas comment appliqué sur toutes les pages du classeur donc j'etais obligé d'ecrire moi même les noms des feuilles, pourtant si je dois ajouter un nouveau client ou produit, son classeur doit aussi se mettre a jour quand le mois change
je vous met les deux codes (créer un bouton) et celui qui permet de mettre a jour les pages.
désolé, normalement je devrais mettre probleme resolu
Private Sub CommandButton2_Click()
Dim sheet As Worksheet
Set sheet = ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
End Sub
Dim myMonth As Integer, myYear As Integer, myDate As Date, sc As Long, ee As String, cc As String, a As Long, b As Long
myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate
myMonth = (Month(myDate) - 1) ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
If (myMonth) = 0 Then 'si calcul du mois précédent = 0
myMonth = 12 'mois précédent = 12
myYear = myYear - 1 'année précédente
End If
cc = "PRODUIT" & "" & (myMonth) & " - " & myYear 'élabore le nom de l'onglet
sc = Sheets.Count 'calcule le nombre de feuilles dans le classeur
a = 1
For a = 1 To sc
If Sheets(a).Name = cc Then 'vérifie que l'onglet n'existe pas
End 'sinon fin de programme
End If
Next a
Sheets("SAVON CHAT").Copy After:=Sheets(1) 'effectue la copie de la feuille Tableau
ActiveSheet.Name = cc 'nomme la nouvelle feuille
Sheets("SAVON CHAT").Select
End Sub
merci de bien vouloir m'aider
re,
je ne comprend pas la question ?
Bonjour
J'ai un classeur Client, dans le classeur client, les feuilles sont représentés par les noms de client afin de pouvoir envoyer les information dans la feuille reservée au client qu'on va selectionner dans le combobox.
ce que je veux faire c'est pouvoir en premier ajouter une feuille dont je choisirai le nom ou cas ou je veux ajouter un nouveau client
et ensuite trouver un code qui va me permettre de me mettre a jour les feuilles de chaque client. Par exemple
JEAN1-2020 ; MOUSSA1 - 2020 et quand le mois change des feuilles s'ajoutent soit JEAN2 - 2020 ; MOUSSA2 - 2020
Je connais un code qui permet de faire ça mais je met dans le code les noms des feuilles,
je veux un code qui s'applique sur toutes les feuilles (ainsi que les nouvelles)
J’espère que j'ai été un peu claire
Si oui, merci de me venir en aide