Pb pour definir une listbox

  • Initiateur de la discussion Initiateur de la discussion chris 54
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chris 54

Guest
bonjour a tous dans le fichier ci joint j ai un petit Pb
pour définir une zone dans combobox
si quelq'un peut ouvrir le fichier se serait super cool; je suis bloqué dans mon programme
un grand merci a pascal pour les info de tout a l heure
chris 54
 

Pièces jointes

Ok dans mon userform7
je souhaiterais integrer une comobox ou listbox
cet userform s execute a partir de feuil2
or les données rowsource se trouvent dans la feuille 1("E90:E100")
les données en E90.e100 doivent etre visible dans ma boite de l userform7
par le biais d un bouton de base
excuse ZON pour ma maladresse je débute
 
Re,

Rajoutes 2 combobox dans ton userform7 pour avoir l'exemple


Il existe 3 méthodes pour remplir une combobox ou une listbox. Voici ce que cela pourrait donner d'aprés ton exemple:=> à mettre dans l'évènement initialize de l'userform7

1 ére:additem
dim C as range 'on définit une variable C qui représente une cellule

With sheets("planning 1")'on indique sur quelle feuille travailler
For Each C In .Range("E90:E100")
If Not IsEmpty(C) Then ComboBox2.AddItem C.Value
Next C
End With

2 eme: Rowsource, attention avec celle ci il ne faut pas d'espace dans le nom de la feuille.il faut renolmmer la feuille "planning1"
With sheets("planning1")
ComboBox1.RowSource = .Name & "!" & .Range("E90:E100").Address
end With
'ou si tu préfères
ComboBox1.RowSource = "planning1!$Es90:$E$100"


3 eme par LIst: par un tableau
' tu n'es pas obligé(e) de redéfinir les ColumnCount et ColumnWidths à cahque fois mais comme dans l'exemple tu as fourni ces propriétes ont été modifiées je remets leur valeur par défaut
With ListBox1
.ColumnCount = 1 '
.ColumnWidths = ""
.List = Sheets(1).Range("E90:E100").Value
end With

Tu vas avoir des 1 ligne sur 2 de vides puisque tu as des cellules fusionnées=> voici une fonction que j'utilise régulièrement pour éviter les vides:

Function RecupV(T)
Dim I&, J&, Tmp()
For I = 1 To UBound(T, 1)
If Not IsEmpty(T(I, 1)) Then
ReDim Preserve Tmp(J)
Tmp(J) = T(I, 1)
J = J + 1
End If
Next I
RecupV = Tmp
End Function

cela devient:
.List = RecupV(Sheets(1).Range("E90:E100").Value)


Voilà j'espère que ce sera un peu plus clair pour toi, choisis pour la méthode qui te convient le mieux.


A+++
 
boite supressions

Merci Zon je vais essayer ta methode
sans abuser? peut me donner un exemple concret dans l exemple ci joint? (car je débute en VBA )
de plus est il possible de créer comme un compteur pour signaler que cellulle ont été supprimer dans la colonne voiture ...
Ex si je suprime voiture1 dans l userform je souhaiterai qu'à chaque changement l userform aparaisse pour me dire que tel voiture a été supprimée et dans la ligne inférieur de l userform l endroit (onglet) où il est référencé 1 boite (compteur) qui précise le nombre de supréssions éffectuées du premier onglet
 

Pièces jointes

Re: boite supressions

Salut,

En passant par des macros évènementielles qui sont dans le module de feuil1; Par contre je n'ai pas compris pour le compteur de suppression. Ici j'affiche l'userform quand une cellule est modifiée dans la colonne C. Tu parles aussi de la colonne A ???

A+++
 

Pièces jointes

Re: boite supressions

Excellent travail !!!
merci mille fois
ce que je souhaitais c etait de creer un compteur cumulant le nbre de fois ou des celulles sont videes dans la colonne "c " "feuille1"
si tu peux y remédier sans abuser ce serai super cool
merci ZON
A+
 

Pièces jointes

Re: boite supressions

Salut,

Je ne sais pas si cela te conviendra mais tu peux mettre un compteur dans une cellule, par exemple A1:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range(Plage).Columns(3), Target) Is Nothing Then
If Len(Ch) = 0 Then Exit Sub
With UserForm1
.ListBox1.AddItem Ch
.ListBox2.AddItem Sheets(Right(Ch, 1) + 1).Name
.Show
[A1] = [A1] + 1 'ici à rajouter
End With
End If
End Sub

A+++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
914
Réponses
4
Affichages
983
Retour