Créer un plage pour alimenter un Combobox

br44

XLDnaute Impliqué
Bonjour le forum ,

Je voudrais afficher dans un Combobox le résultat de colonnes et l'associer de manière à obtenir le résultat suivant :

Nom + le n° de facture de chaque mois (1 résultat toutes 9 colonnes )

J'ai déjà fait les variables qui associent le n° au montant mais je n'arrive pas à les associer à ma liste de départ .

Le résultat que je voudrais obtenir est le suivant :

Si je sélectionne le Nom de MAXOU dans ma liste je voudrais que s'affiche dans la ConboBox (N°de facture) les cellules P ,Y, AH de la lignes 13 soit 125, 250, 35, (Voir ligne 2 du tableau) et ceci pour chaque nom de la liste ?

Pour l'instant j'ai réussi à afficher tout la colonne 16 mais je veux juste les cellules correspondantes à la ligne .

Je joins mon fichier avec le tableau ,l'USF et mon programme .


Si ma demande n'est pas claire où si il vous manquait des éléments faites le moi savoir . Je ne vous demande pas de faire le programme mais de me donner l'explication ou les procédures de base pour que je puisse avancer .

Vous remerciant par avance de votre aide je vous dit à plus sur se fil . Amicalement Br44
 

Pièces jointes

  • ESSAI3.2.zip
    34.4 KB · Affichages: 99
  • ESSAI3.2.zip
    34.4 KB · Affichages: 97
  • ESSAI3.2.zip
    34.4 KB · Affichages: 96

br44

XLDnaute Impliqué
Re : Créer un plage pour alimenter un Combobox

Bonjour Jp14,Le forum

Comme prévue je reviens vers toi et le forum pour faire un point .

Voilà en réfléchissant j'ai opté pour une modification de mon USF .J'ai repris le même principe que le premier ,mais j'ai rajouter des Combobox ,des textBox et des toggleButton . J'ai ensuite copier les macros corespondant en modifiant les noms .

J'ai presque réussi à tout faire ,mais il y a un problème pour afficher le N° de facture de la feuille "RECAP IMPAYER" dans l'usf à partir de la feuille "Saisie1" .

Je m'explique : Actuellement il m'affiche Colonne B de la feuille1 au lieu de la Colonne B de la feuille4 quand on ouvre l'usf sur la feuille1,mais il affiche seulement la colonne B quand j'ouvre l'usf à partir de la feuille 4 .

Je ne voie pas où cela peut bloquer? il n'y a pas de beug au niveau du vba?

Je mets Ci joint le nouveau fichier pour que se soit plus claire .

Si tu pouvais regarder ce qui manque pour qu'il face la liaison entre les deux feuilles se serais génial .
Te remerciant par avance et m'excusant du retard je te dis bientôt sur se fil . Amicalement BR44
 

Pièces jointes

  • ESSAI3.2.zip
    41.1 KB · Affichages: 34
  • ESSAI3.2.zip
    41.1 KB · Affichages: 32
  • ESSAI3.2.zip
    41.1 KB · Affichages: 32

jp14

XLDnaute Barbatruc
Re : Créer un plage pour alimenter un Combobox

Bonjour

Quand on écrit le code suivant
Set A = Range("A12:A" & Range("A65536").End(xlUp).Row)
la feuille concernée est la feuille active.

Pour éviter les problèmes il faut indiquer le nom des feuilles comme ci dessous.

Set A = Sheets("SAISIE").Range("A12:A" & Range("A65536").End(xlUp).Row)

JP
 

br44

XLDnaute Impliqué
Re : Créer un plage pour alimenter un Combobox

Bonjour JP14, le forum

Merci pour ta réponse , que je vient de tester .

Hélas celà ne change rien à mon problème .La macro refuse toujours d'afficher la colonne B de la feuille "RECAP IMPAYER" et reste bloquer sur la colonne B de la feuille "SAISIE1" malgré la modification .

Pour info: Il m'affiche le montant de la feuille "Recap impayer " Si la colonne B de la feuille "Saisie1" est renseignée si non sa beug au niveau de la dernière ligne de la ComBoChange.

L'erreur est : Erreur de type 13' Incompatibilité de type

Faut -il que je déclare une où plusieurs variables au niveau de l'USF_ Initialze().

Voilà où j'en suis j'essaye de mon coté plusieurs choses mais jusque là sans résultat .

Si tu as une idée de ton coté n'hésite pas . Te remerciant par avance je te dis à plus . Amicalement Br44
 

br44

XLDnaute Impliqué
Re : Créer un plage pour alimenter un Combobox

Bonjour Jp14,le forum

Merci pour cette explication de texte .

Bon en réfléchissant au problème je crois avoir trouver , mais là je ne c'est pas si c'est possible .

la macro ne veut pas prendre en compte la feuille "RECAP IMAYER" dans la variable suivante :
Code:
'Définit la variable A
  Set A = Sheets("SAISIE1").Range("A12:A" & Range("A65536").End(xlUp).Row)
  'On boucle sur toutes les cellules de la plage A
  For X = 1 To 34
  col = 1 + 35 'Détermine le choix des colonnes
'Redéfinit la vériable A et l'unie avec la dernière colonnes du tableau
   Set A = Application.Union(A, Range(Cells(35, col), Cells(65536, col).End(xlUp)))
'Sort de la boucle
  Next X
je voudrais donc savoir si il possible d'unir deux colonnes de deux feuilles différantes ? où d'ajouter une colonnes provenant d'une autre feuille ?

je vais chercher sur le forum ,mais si quelqu'un à une idée qu'ils n'hésite pas .

Vous remerciant toutes et tous je vous dis à bientôt .Amicalement Br44
 

jp14

XLDnaute Barbatruc
Re : Créer un plage pour alimenter un Combobox

Bonsoir

Bonjour Jp14,le forum


Code:
'Définit la variable A
  Set A = Sheets("SAISIE1").Range("A12:A" & Range("A65536").End(xlUp).Row)
  'On boucle sur toutes les cellules de la plage A
  For X = 1 To 34
  col = 1 + 35 'Détermine le choix des colonnes
'Redéfinit la vériable A et l'unie avec la dernière colonnes du tableau
   Set A = Application.Union(A, Range(Cells(35, col), Cells(65536, col).End(xlUp)))
'Sort de la boucle
  Next X

Une correction à apporter

Set A = Sheets("SAISIE1").Range("A12:A" & Sheets("SAISIE1").Range("A65536").End(xlUp).Row)
Le deuxième range porte sur la feuille active qui peut être la feuille saisie ou ?

JP
 

br44

XLDnaute Impliqué
Re : Créer un plage pour alimenter un Combobox

Bonsoir jp14, le forum

Merci pour cette réponse que je viens de tester . Hélas le résultat et toujours le même il ne veux pas m'afficher les n° de factures de la feuille "Récap impayer" dans la combobox prévue il reste bloqué sur la colonne B de la feuille "Saisie1".

Je ne voies pas comment faire ?

Merci pour ta patience et pour la rapidité des tes réponses .à bientôt ,amicalement Br44
 

jp14

XLDnaute Barbatruc
Re : Créer un plage pour alimenter un Combobox

Bonsoir

Ci dessous le code qui fonctionne. Pour simplifier j'utilise un sous programme.
Code:
Private Sub NomClient_Change() 'On récupère le combobox1 "NomClient" pour modification
'Définit la variable LNomClient
 LNomClient = Cells.Find(NomClient.Value, LookIn:=xlValues).Row
 Me.MontantGlobal.Value = Cells(LNomClient, 35).Value
'Mise au format de la TextBox1 "MontantGlobal"
 Me.MontantGlobal.Value = Format(Me.MontantGlobal, "#,##0.00 €")
'Définit la variable Lig
lig = CLng(NomClient.List(NomClient.ListIndex, (NomClient.ColumnCount - 1)))
'Parametrage des autres ComboBox de la feuille "SAISIE1"
Call remplircombo("NFacture", lig, coldep, colder, pas, "SAISIE1")
Call remplircombo("NAnFacture1", lig, coldep + off1, colder + off1, pas, "SAISIE1")
Call remplircombo("NAnFacture2", lig, coldep + off2, colder + off2, pas, "SAISIE1")
Call remplircombo("NFactureUnique", lig, coldep + off3, colder + off3, pas, "SAISIE1")

Call remplircombo("NFacture1", lig, coldep1, colder1, pas1, "RECAP IMPAYER")
Call remplircombo("AnFacture1", lig, coldep1 + off4, colder1 + off4, pas1, "RECAP IMPAYER")
Call remplircombo("AnFacture2", lig, coldep1 + off5, colder1 + off5, pas1, "RECAP IMPAYER")
Call remplircombo("FactureUnique", lig, coldep1 + off6, colder1 + off6, pas1, "RECAP IMPAYER")

End Sub

La sous routine

Code:
Private Sub remplircombo(nomcombo As String, £lig As Long, £coldep As Integer, £colder As Integer, £pas As Byte, nomfeuil As String)
With Me.Controls(nomcombo)
    .Clear

'Creé une boucle dans le tableau à partir de la colonne N°de facture de la feuille "SAISIE1"
For X = £coldep To £colder Step £pas
            .AddItem [COLOR="Red"]Sheets(nomfeuil).[/COLOR]Cells(£lig, X)
            .List(.ListCount - 1, 1) = Sheets(nomfeuil).Cells(£lig, X).Offset(0, 1)
            If [COLOR="Red"]Sheets(nomfeuil).[/COLOR]Cells(£lig, X).Offset(0, 1).Font.ColorIndex = 5 Then 'Affect une couleur au départ
                'La facture à déjà été payée
                .List(.ListCount - 1, 2) = "Payer"
            Else
                'la facture est dûe
                .List(.ListCount - 1, 2) = ""
            End If
Next X
       End With
End Sub

Le problème provenait des zones en rouge qui étaient absentes.

Il faut que Cells soit précédé de Sheets("SAISIE") idem pour Range.
Il faut toujours identifier la feuille utilisée.

JP
 

br44

XLDnaute Impliqué
Re : Créer un plage pour alimenter un Combobox

Bonsoir jp14, le forum ,

Un très très grand merci à toi pour cette réponse . Pas le temps de la tester se soir mais te tient au courant dés demain .

Juste une petite question : A quoi correspond ce symbole "£" ? cela va me permetre de comprendre ta macro .

A demain et merci encore .Amicalement Br44
 

jp14

XLDnaute Barbatruc
Re : Créer un plage pour alimenter un Combobox

Bonjour

J'utilise ce caractère au début des variables uniquement dans des sous programmes, c'est pour éviter des conflits avec les noms des variables dans les procédures principales, comme cela je ne me pose pas les questions pour savoir si le nom est employé.


L'utilisation de sous programmes permet de raccourcir le code et la mise au point est plus facile.


JP
 
Dernière édition:

br44

XLDnaute Impliqué
Re : Créer un plage pour alimenter un Combobox

Bonjour JP14, le forum ,

Je te remercie pour ton dernier message et ta dernière macro que j'ai tester hier . Je te prie de m'excuser pour le retard mis à te répondre .

Bon je vient te donner des nouvelles et te dire où j'en suis . Voilà j'ai bien compris ta dernière macro et j'ai réussi à l'adapter à mon programme .

tout fonctionne bien sur le principe sauf sur les points suivants :

1) le n° de facture pour la "RECAP IMPAYER" s'affiche bien ,mais pas les autres combos ?

2 ) j'ai essayer d'afficher les résultat de l'userform dans les deux feuilles mais il semble que cela ne marche que pour la feuille "SAISIE1" .

Je pense qu'il s'agit d'un problèmes lier au nom du clients où à la validation des toggleButtons qui ne s'exécute pas, mais je n'en suis pas sur . Peut- tu me dire se que tu en pense ?

Je joints ci-dessous la version modifier de mon fichier pour que se soit plus claire . J' ai rajouter des chiffres dans la dernière feuille afin de compléter les combos vides . Les deux première lignes de la feuille 1 sont des testes que viens de faire avant de poster et comme tu pourras le constater il n'apparaissent pas dans la seconde feuilles .

Voilà où j'en suis actuellement. Si tu as un peut de temps pour voir où se trouve la problème et si cela ne te dérange pas trop serais super .

Te remerciant par avance pour tout je te dis à plus et si tu as des questions sur les modifications apportées n'hésite pas . De mon coté je continue de chercher une solution .

Je te dis donc à plus tard sur se fil .Amicalement Br44
 

Pièces jointes

  • ESSAI3.1MODIFIER.zip
    44.2 KB · Affichages: 43

Discussions similaires

Réponses
5
Affichages
264

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 951
dernier inscrit
Misterb