VBA : Remplir feuilles selectioné via comobox.

Jason1826

XLDnaute Junior
Bonjour,

Voila j'aimerai completer un tableau identique sur toutes les feuilles, suelement sur la feuilles selectioner dans le comobox

merci de m'indiquer la formule qui permet de designer la feuille selectioné.

Merci beaucoup pour votre aide.

ci joint le fichier
 

Pièces jointes

  • Futures test1.xlsm
    253.9 KB · Affichages: 41

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA : Remplir feuilles selectioné via comobox.

Bonjour Jason et bienvenu, bonjour le forum,

Petit modif du code dínitialisation :
Code:
Private Sub UserForm_Initialize()
For i = 1 To Worksheets.Count
    Me.COMPTE.AddItem Worksheets(i).Name
Next i
Me.COMPTE.ListIndex = 0
End Sub
Ensuite pour récupérer l'onglet tu peux faire par exemple :
Code:
Private Sub COMPTE_Change()
Dim o As Object

Set o = Sheets(Me.COMPTE.Value)
'o.Select
'o.range("A1").Value = "test"
'etc...
End Sub
 

Jason1826

XLDnaute Junior
Re : VBA : Remplir feuilles selectioné via comobox.

Merci pour votre aide !

je voudrais ajouter une deuxieme chose si cela est possible
j'aimerai que une fois le compte choisit le nom du client s'affiche automatiquement dans le texbox CLIENT via le tableau qu'il y a dans l'onglet "code ferant"

merci beaucoup
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA : Remplir feuilles selectioné via comobox.

Bonjour Jason, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Code:
Private Sub UserForm_Initialize() 'à l'initialisation de l'Userform
Dim o As Object 'déclare la variable o (Onglet)

For Each o In Sheets 'boucle sur tous les onglets du classeur
    If o.Name <> "Feuil1" Then Me.COMPTE.AddItem o.Name 'ajoute le nom de l'onglet à la combobox "COMPTE" si différent de "Feuil1"
Next o 'prochain onglet de la boucle
Me.COMPTE.ListIndex = 0 'affiche le premier de la liste (lance la procédure Change de la combobox "COMPTE")
End Sub


Private Sub COMPTE_Change() 'au changement de la combobox "COMPTE"
Dim oa As Object 'déclare la variable oa (Onglet Actif)
Dim r As Range 'déclare la variable r (Receherche)Set oa = Sheets(Me.COMPTE.Value) 'définit l'onglet actif

With Sheets("code gerant") 'prend en compte l'onglet "code gerant"
    Set r = .Columns(1).Find(Me.COMPTE.Value, , xlValues, xlWhole) 'définit la recherhce r (recherche la valeur de la combobox "COMPTE" dans la colonne 1 (=A) de l'onglet
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
        Me.CLIENT.Value = r.Offset(0, 1).Value 'récupère le client dan sla colonne B
    Else 'sinon
        MsgBox "Il n'y a pas de client attribué à ce compte" 'message
        Me.CLIENT.Value = "" 'vide le textbox "CLIENT"
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "code gerant"
oa.Select 'sélectionne l'onglet oa
End Sub


Sub listing_onglet()
    For i = 1 To Worksheets.Count
        MsgBox Worksheets(i).Name
    Next i
End Sub
J'ai renommé l'UserForm Userform1 (au lieu de UserForm) pour éviter les confusions possibles...
Le fichier :
 

Pièces jointes

  • Jason_v01.zip
    187.2 KB · Affichages: 27

Jason1826

XLDnaute Junior
Re : VBA : Remplir feuilles selectioné via comobox.

Bonjour Jason, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Code:
Private Sub UserForm_Initialize() 'à l'initialisation de l'Userform
Dim o As Object 'déclare la variable o (Onglet)

For Each o In Sheets 'boucle sur tous les onglets du classeur
    If o.Name <> "Feuil1" Then Me.COMPTE.AddItem o.Name 'ajoute le nom de l'onglet à la combobox "COMPTE" si différent de "Feuil1"
Next o 'prochain onglet de la boucle
Me.COMPTE.ListIndex = 0 'affiche le premier de la liste (lance la procédure Change de la combobox "COMPTE")
End Sub


Private Sub COMPTE_Change() 'au changement de la combobox "COMPTE"
Dim oa As Object 'déclare la variable oa (Onglet Actif)
Dim r As Range 'déclare la variable r (Receherche)Set oa = Sheets(Me.COMPTE.Value) 'définit l'onglet actif

With Sheets("code gerant") 'prend en compte l'onglet "code gerant"
    Set r = .Columns(1).Find(Me.COMPTE.Value, , xlValues, xlWhole) 'définit la recherhce r (recherche la valeur de la combobox "COMPTE" dans la colonne 1 (=A) de l'onglet
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
        Me.CLIENT.Value = r.Offset(0, 1).Value 'récupère le client dan sla colonne B
    Else 'sinon
        MsgBox "Il n'y a pas de client attribué à ce compte" 'message
        Me.CLIENT.Value = "" 'vide le textbox "CLIENT"
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "code gerant"
oa.Select 'sélectionne l'onglet oa
End Sub


Sub listing_onglet()
    For i = 1 To Worksheets.Count
        MsgBox Worksheets(i).Name
    Next i
End Sub
J'ai renommé l'UserForm Userform1 (au lieu de UserForm) pour éviter les confusions possibles...
Le fichier :


Lorsqu'on tape un numero de compte qui commence par une serie de chiffre qui n'a pas de nom de client mais où finalement il y en a une en modifiant la suite , le popup vient directement avant davoir terminer le n° de compte.

si l'on tape un numero de compte inconnu il y a un bug.

avec toute mes remerciments est il possible de corriger çela facilement ?
 

Jason1826

XLDnaute Junior
Re : VBA : Remplir feuilles selectioné via comobox.

pour revenir sur ce que j'ai envoyé precedement,
le mieux serais que si le numero du client n'existe pas (feuille introuvable) est t til possible de proposer la creation de la feuille , nom et numero client.

merci beauoup
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA : Remplir feuilles selectioné via comobox.

Bonjour Jason, bonjour le forum,

En pièce jointe la version 2. J'espère que ça te conviendra... L'onglet se rajoute en dernier. Est-ce convenable ?
Je ne sais pas à quel moment comment créer le client. À la sortie de la Texbox ? Au clic sur l'un des boutons ACHAT, VENTE ? Comment rajouter le compte et le nom dans l'onglet Code gerant ? À la fin ? Trier par numéro de compte ?
En attendant tes réponses pour peaufiner le code...
 

Pièces jointes

  • Jason_v02.zip
    189 KB · Affichages: 36

Jason1826

XLDnaute Junior
Re : VBA : Remplir feuilles selectioné via comobox.

Bonjour Jason, bonjour le forum,

En pièce jointe la version 2. J'espère que ça te conviendra... L'onglet se rajoute en dernier. Est-ce convenable ?
Je ne sais pas à quel moment comment créer le client. À la sortie de la Texbox ? Au clic sur l'un des boutons ACHAT, VENTE ? Comment rajouter le compte et le nom dans l'onglet Code gerant ? À la fin ? Trier par numéro de compte ?
En attendant tes réponses pour peaufiner le code...

merci pour ta reponse!

pour l'onglet en dernier ouai c'est parfait !
pour le lien , je pense que le mieux est que des que le nom du client ne s'affiche pas il propose la creation de l'onglet.
en se qui concerne l'onglet code gerant, que le compte se rajoute trier par numero serai tres bien !

MERCI
 

Jason1826

XLDnaute Junior
Re : VBA : Remplir feuilles selectioné via comobox.

Bonjour Jason, bonjour le forum,

En pièce jointe la version 2. J'espère que ça te conviendra... L'onglet se rajoute en dernier. Est-ce convenable ?
Je ne sais pas à quel moment comment créer le client. À la sortie de la Texbox ? Au clic sur l'un des boutons ACHAT, VENTE ? Comment rajouter le compte et le nom dans l'onglet Code gerant ? À la fin ? Trier par numéro de compte ?
En attendant tes réponses pour peaufiner le code...

re bonjour Robert,

Si c'est trop complexe, ne t'embete pas avec cela, c'est deja tres sympa ce que tu as fait!

merci encore
 

Discussions similaires

Réponses
8
Affichages
431
Réponses
13
Affichages
380

Statistiques des forums

Discussions
312 503
Messages
2 089 062
Membres
104 015
dernier inscrit
kkgk