Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 alimentation Combobox et liaison textbox très lente

Bulr6

XLDnaute Nouveau
Bonjour à tous.
Je ne suis déjà pas très sur d'avoir bien expliqué mon problème. Veuilllez m'en excuser par avance.
Avant de poser une question j'essaie d'avancer le plus possible par moi même mais en grand débutant mais ce n'est pas forcément évident.

Mon problème :
J'ai dans un Userform un combobox (nom) que j'alimente avec toutes les occurrences présentes à partir de F2 (qui évolue) sur 4 feuilles différentes (Boulogne, calais, dunkerque, saint omer) et que je trie. Voici le code :
VB:
Sub UserForm_Initialize()

Set boul = Sheets("Boulogne")
Set cal = Sheets("Calais")
Set dunk = Sheets("Dunkerque")
Set so = Sheets("Saint-Omer")

For Each c In boul.Range("F2:F" & boul.[F65000].End(xlUp).Row)
  Me.Nom.AddItem c
Next c
For Each c In cal.Range("F2:F" & cal.[F65000].End(xlUp).Row)
  Me.Nom.AddItem c
Next c
For Each c In dunk.Range("F2:F" & dunk.[F65000].End(xlUp).Row)
  Me.Nom.AddItem c
Next c
For Each c In so.Range("F2:F" & so.[F65000].End(xlUp).Row)
  Me.Nom.AddItem c
Next c

 With Nom
        For i = 0 To .ListCount - 1
            For j = 0 To .ListCount - 1
                If .List(i) < .List(j) Then
                    StrTemp = .List(i)
                    .List(i) = .List(j)
                    .List(j) = StrTemp
                End If
            Next j
        Next i
    End With

End Sub

Jusque là cela va encore mais ensuite une fois sélectionnée une valeur dans la combobox (nom) je lui demande d'alimenter plusieurs textbox dont les valeurs correspondent à la valeur de la combobox.... Et c'est là que ça se complique c'est très trsè long alors que je n'en suis qu'à un critère :
Exemple avec un textbox "modele" présent en colonne K de chacune de ces feuilles
Code:
Sub Nom_Change()

 For j = 2 To 65536
        If Sheets("Boulogne").Cells(j, 6) = Nom Then
           modele = Sheets("Boulogne").Cells(j, 11).Value
        ElseIf Sheets("Calais").Cells(j, 6) = Nom Then
           modele = Sheets("Calais").Cells(j, 11).Value
        ElseIf Sheets("Dunkerque").Cells(j, 6) = Nom Then
           modele = Sheets("Dunkerque").Cells(j, 11).Value
        ElseIf Sheets("Saint-Omer").Cells(j, 6) = Nom Then
           modele = Sheets("Saint-Omer").Cells(j, 11).Value
          
        End If
Next j

End Sub

ET je compte comme cela alimenter 5-6 textbox (matériel/fabricant/adressemail/site/date) ... ces textbox me servent par la suite de champ pour remplir des champs pour des mails automatique.

Merci d'avance à ceux qui pourront m'aider à trouver une solution plus fluide/rapide
 

JM27

XLDnaute Barbatruc
bonjour
pourquoi ne pas mettre un seule feuille pour les noms en rajoutant une colonne indiquant la ville.
surtout si la liste des noms n'est pas conséquente
cela simplifierai bien les choses ??
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonjour
perso je vais pas revenir sur la question pourquoi 4 pages les autres s'en chargent
je viens de remplacer le code du initialise par mon code du activate
et ma combo est rempli et triée
l'endroit ou se trouve chaque item est dipo dans la combo post événement ou par un autre événement d'un autre control
avec
Dim feuille,ligne
with nom
feuille=.list(.listindex,1)
ligne=val(.list(.listindex,2))
end with

c'est pas compliqué
 

Discussions similaires

Réponses
17
Affichages
849
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…