boucle sur combo

jeromeN95

XLDnaute Impliqué
Bonjour,
je viens vers vous afin de comprendre la dynamique des boucles aux travers d'un besoin.

J'ai un Userform Horaire où l'utilisateur renseigner jusqu'a 4 combo * 5
CAD / Lundi L1 L2 L3 L4
Mardi M1 M2 M3 M4
...
Vendredi V1 V2 V3 V4

J'ai donc fait ce code :
Private Sub CmbValider_Click()
Dim Str_H As String

If Me.L1 <> "" Then
Str_H = "Lundi: " & Me.L1 & "h à " & Me.L2 & "h et " & Me.L3 & "h à " & Me.L4 & "h" & " / "
End If
If Me.M1 <> "" Then
Str_H = (Str_H & "Mardi: " & Me.M1 & "h à " & Me.M2 & "h et " & Me.M3 & "h à " & Me.M4 & "h" & " / ")
End If
If Me.Me1 <> "" Then
Str_H = (Str_H & "Mercredi: " & Me.Me1 & "h à " & Me.Me2 & "h et " & Me.Me3 & "h à " & Me.Me4 & "h" & " / ")
End If
If Me.J1 <> "" Then
Str_H = (Str_H & "Jeudi: " & Me.J1 & "h à " & Me.J2 & "h et " & Me.J3 & "h à " & Me.J4 & "h" & " / ")
End If
If Me.V1 <> "" Then
Str_H = (Str_H & "Vendredi: " & Me.V1 & "h à " & Me.V2 & "h et " & Me.V3 & "h à " & Me.V4 & "h")
End If
ActiveSheet.Range("$E$1:$H$1") = Str_H

Unload Me
End Sub



Mais si l'utilisateur ne renseigne pas au moin la premiere combo, les heures ne s'affichent pas.
Je souhaiterai donc faire une boucle pour :
reduire ce code et etre sur d'avoir les renseignement.

Peut etre avec For Each c In Me.Controls
Str_H = "Lundi: " & Me.L1 & "h à " & Me.L2 & "h et " & Me.L3 & "h à " & Me.L4 & "h" & " / "

Next

mais je n'en suis pas sur.

Pourriez vous m'aider SVP?
 

kjin

XLDnaute Barbatruc
Re : boucle sur combo

Bonjour,
La boule n'a rien donné...
22 messages pour avoir un bout d'explication ! :rolleyes:
Du coup j'ai fait simple
A+
kjin
 

Pièces jointes

  • jerome.zip
    24.1 KB · Affichages: 40
  • jerome.zip
    24.1 KB · Affichages: 37
  • jerome.zip
    24.1 KB · Affichages: 40

jeromeN95

XLDnaute Impliqué
Re : boucle sur combo

Bonsoir, trop fort!!!
C'est super ce forum.
Ca fait 3 mois que je bosse sur un projet et en un week end j'ai résolu mes plus gros problemes;
Merci beaucoup.
Comment diable vais-je pouvoir vous remercier?

J'ai choisi la solution N°2, beaucoup plus jolie.
Par contre à la fin il me rajoute une ligne.
Comment je doit l'enlever?

Par exemple :

-Lundi: de 07h00 à 07h30 et de 14h30 à 20h00
-Mardi: de 07h00 à 07h30 et de 14h30 à 20h00
-Mercredi: de 07h00 à 07h30 et de 14h30 à 20h00
-Jeudi: de 07h00 à 07h30 et de 14h30 à 20h00
-Vendredi: de 07h00 à 07h30 et de 14h30 à 20h00
-


J'ai une ligne vide et du coup j'ai pas le lundi d'afficher.
La cellule fait 80 pixel de haut en police 10.
 
Dernière édition:

jeromeN95

XLDnaute Impliqué
Re : boucle sur combo

Encore une petite chose STP :
J'ai 2 onglets qui font appel à cette USF Horaire.
Buanderie et Cuisine

Est-ce possible de modifier ce code :
Private Sub CmbValider_Click()
Dim txt$

Range("G1") = ""
For i = 1 To 5
If Controls("Jour" & i) <> "" Then txt1 = txt1 & Controls("Jour" & i) & vbLf
Next
Range("G1") = txt1
End Sub


Pour que dans l'onglet Buanderie les données soient stocké en G1:G2
Et dans la feuille Cuisine elles le soient dans E1:F1

En fonction du click bien sur car les horaires sont différents des cuisines et des buanderies.

En gros l'utilisateur click sur G1:G2 en Buanderie, il met les heures d'intervention.
Et aprés il va dans la feuille Cuisine, il click en E1:F1 et met d'autre heure.



Ou alors je fait 2 USF ?
Ca va alourdir je pense.
 

kjin

XLDnaute Barbatruc
Re : boucle sur combo

Re,
En gros l'utilisateur click sur G1:G2 en Buanderie, il met les heures d'intervention.
Et aprés il va dans la feuille Cuisine, il click en E1:F1 et met d'autre heure.
J'en conclue qu'une macro événementielle active l'affichage du USF donc...
Code:
Private Sub CmbValider_Click()
Dim i As Byte, txt$
ActiveCell = ""
For i = 1 To 5
    If Controls("Jour" & i) <> "" Then txt = txt & Controls("Jour" & i) & vbLf
Next
If Len(txt) > 0 Then ActiveCell = Left(txt, Len(txt) - 1)
End Sub
...tout simplement
Si c'est pas ça, tu sais dorénavant que ma boule n'est pas très causante !
A+
kjin
 
Dernière édition:

jeromeN95

XLDnaute Impliqué
Re : boucle sur combo

Tu pourait m'aider aussi pour un autre petit problème?

J'ai plusieurs liste déroulante de choix qui font référence à des régles situé dans une feuille Régles.
Une autre bonne ame m'a donné une astuce pour les mettres à jour automatiquement si je rajoute des valeurs ou des références par exemple.

Le problème est que sur les cellules qui font appelle a ses régles, dans le menu validation, au bout d'un certain temps elles ne fonctionnent plus.
Elles me mette bien la petite case pour l'ascenseur mais rien.
Et lorsque je retourne dans l'outil validation, excel me dit que la source est reconnu comme erroné.
Une idée?
Et comme là, excel me dit également que je ne doit pas faire référence à une autre feuille.
Pourtant je l'ai déjà fait.
 
Dernière édition:

kjin

XLDnaute Barbatruc

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95