Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion kohta
  • 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 !

kohta

XLDnaute Occasionnel
Bonjour, je voudrais programmer une combobox que j'ai intégré à une userform se lançant lorsque je clique sur mon button.

Comment puis-je afficher une msgbox "erreur" lorsque user form est validé (commandbutton "ok") mais que la combobox est vide? (rien de sélectionné, rien de tapé)?

Et si je peut abuser...

Comment pourrais-je faire pour que une fois la combobox renseignée (elle contient une liste de jours correspondant pour chacun à une colonne différente de mon tableur), une plage de cellules données soit copiée puis collée dans la colonne sélectionnée dans la combobox?

Merci de votre aide, ca fait 5h que je bidouille en vain...😕

Bonne journée
 
Re : combobox

Bonjour Kohta

pour ta 1ère question, regarde le code ci dessous :

Code:
Private Sub CommandButton1_Click()
If ComboBox1.Value = "" Then MsgBox "erreur"
End Sub

pour ta 2ème question cela demande un peu plus de détails, voir un ficher sans données confidentielles ...

bonne fin d'après midi
@+
 
Re : combobox

merci de ta réponse,

je suis vraiment bête, pour la msg box, javais seulement tapé le "Then" à la ligne et pas à la suite du "if"...

J'ai joint un exemple rapide j'espère que cela pourra aider

En fait, l'utilisateur remplit la colonne en jaune a chaque fin de journée, puis il clique sur le bouton, la boite de dialogue s'ouvre, il choisit le jour qu'il vient de renseigner dans la liste de mon combobox, et j'aimerais que quand il valide la boite de dialogue, la plage de celulles jaunes qu'il a rempli auparavan soit copiée dans la colonne correspondant au jour qu'il a renseigné dans la combobox...

merci de ton aide
 

Pièces jointes

Re : combobox

Re

pas de usf ni de code dans ton exemple... regarde le code ci dessous, si cela peut t'aider.

à placer dans le module de l'USF
Code:
Private Sub UserForm_Initialize()
    ComboBox1.List = Application.Transpose(Range("D1:G1").Value)
End Sub
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex <> -1 Then Range("B3:B8").Copy Cells(2, ComboBox1.ListIndex + 4)
End Sub

bonne soirée
@+
 
Re : combobox

Bonjour Pierrot93,
tout d'abord merci de ta réponse et désolé d'avoir reposté une discussion...

Je m'emmèle un peu les pinceaux dans mon projet, et j'ai voulu redéfinir ma requète.

Pourrais-je te transmettre un nouvel exemple (cet fois avec USF) pour voir si tu pourrais m'aider?

En gros, je souhaite que lorsque les données sont remplies dans la partie jaune, on clique sur le bouton, l'Usf s'ouvre, on choisi par la combobox une semaine, et quand on clique sur un bouton ok, la plage jaune doit etre copiée dans la semaine correspondante.

Autre problème, je n'arrive pas à définir les semaine dans le "rowsource" de la combobox si je sélectionne les semaines eu ligne 1 du tableur, je suis obligé de créer une liste des semaines sous forme colonne et non ligne...

Merci beaucoup
 

Pièces jointes

Re : combobox

Re

perso je ne travaille jamais avec la propriété "rowsource", utilise peut être le code que je t'ai donné, à placer dans l'événement "Initialize" de l'USF, alimente ta combobox à l'initialisation de l'USF :

Code:
Private Sub UserForm_Initialize()
    ComboBox1.List = Application.Transpose(Range("D1:G1").Value)
End Sub

n'oublies pas de retirer les données, dans la propriété "rowsourse" du "combo".

quand au 2ème code donné, effectue la copie comme demandée :

Code:
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex <> -1 Then Range("B3:B8").Copy Cells(2, ComboBox1.ListIndex + 4)
End Sub

regarde aussi la proposition de Kobaya dans l'autre post...

difficile à suivre sur plusieurs fils.
 
Re : combobox

Bonjour

Je n'arrive pas à renseigner automatiquement mon combobox à l'aide du private sub initialize donné précédemment: la combobox reste vide.

j'ai copié la sub dans le code de ma combobox, je pense avoir fais la bonne manip, mais rien ne se passe.

Je joint un nouvel exemple, cette fois simplifié de ce que j'aimerais obtenir:

je souhaite que, lorsque je remplis une plage de données fixe, et que je clique sur le bouton d'exécution, la combobox me donne le choix entre les quatres semaine S1 S2 S3 et S4 de mon tableau (et pas une adresse de celulle), et que lorsque je valide mon usf, la copie des cellules sources "fixes" se fasse dans la semaine que j'ai renseigné.

Ca ne me paraissait pas compliqué à l'origine, mais je vous avoue que je coince sur le sujet depuis maintenant 3 semaines 🙁

Merci de votre aide 😱
 

Pièces jointes

Re : combobox

Merci beaucoup de ton aide, Hervé.

Ton exemple fonctionne à merveille, et je m'en suis servi pour mon doc cible.

cependant, pourrais-tu m'expliquer brièvement la ligne:

Range("D1:G1").Copy Destination:=Cells(4, ComboBox1.ListIndex + 4)

Principalement la fin de la ligne, en fait.
Je n'arrive pas à transcrire cette partie dans mon doc cible...🙁

Merci encore!
 
- 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

Discussions similaires

Réponses
4
Affichages
1 K
C
Réponses
4
Affichages
2 K
Compte Supprimé 979
C
N
Réponses
3
Affichages
1 K
ninajams
N
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…