[Xls 2007] Données colonne source vers Boite de Dialogue
Bonjour à tous,
je suis nouveau sur ce forum et j'aimerais avoir quelques informations.
Je me lance donc à l'aventure sur ce forum
Je souhaite importer des données d'une colonne d'une feuille vers un onglet d'une boite de Dialogue mais je recherche depuis des jours je ne trouve pas la convenance avec mon fichier.
Il faut cliquer sur le bouton Boite de dialogue feuille Menu pour qu'elle apparaisse, puis dans ajuster le stock et sur l'onglet Choix liste mais comment faire pour que Excel me laisse le choix en cliquant sur ce bouton entre toutes les plaquettes disponibles en feuille Bases ?
Ma liste des références est actuellement vide.
De plus il y a un onglet Mouvement dans lequel l'utilisateur doit choisir Entrée ou Sortie et selon son choix la colonne correspondante est selectionnée dans les feuilles Semaine 1 à 5.
Je bosse actuellement sur le choix de la feuille et du jour en demandant à excel de comparer la date d'aujourdh'ui et la Semaine avec les feuilles du classeur. La macro d'affichage du jour et de la semaine est déjà opérationnelle
Si quelqu'un a un peu de temps pour voir où ça coince ....
Je vous remercie d'avance !
Bonjour,
Dans ton USerform2, colle ce code
Private Sub UserForm_initialize()
'Dan pour michoulu le 07/05/2012
Dim tablo
tablo = Sheets("Bases").Range("F3:F" & Sheets("Bases").Range("F" & Rows.Count).End(xlUp).Row)
LB2.List() = tablo
End SubSi ok, merci de cloturer le fil en cliquant sur le V vert à coté du bouton Editer
Autre chose : évite les rowssource dans tes codes. Ils ne sont pas pratique (en cas de mise à jour par exemple) et posent souvent des soucis. Choisis plutôt la méthode ADDITEM ou comme je te propose ci-avant.
Amicalement
Coucou Dan et merci de ta réponse,
J'ai trouvé un moyen pour afficher la colonne et mettre à jour si des cellules sont vides :
Private Sub Userform_Initialize()
Dim i As Long, j As Long, selection As String
selection = ""
With Sheets("Bases")
j = .Range("C65536").End(xlUp).Row ' à modifier si nécessaire
For i = 3 To j
selection = .Range("C" & i).Value
If selection <> "" Then
UserForm3.LB2.AddItem Sheets("Bases").Cells(i, 3)
End If
Next i
End With
End SubJe peux encore poser une question ?
Une fois mon choix effectué dans la ListBox, j'ai crée un bouton Valider qui doit afficher la ligne sélectionner de la ListBox vers une TextBox d'une même UserForm.
le but : éviter de taper du texte dans une textbox mais choisir entre une liste déroulante de choix ...
Je cherche donc à transférer de l'une à l'autre.
Le code semble ressembler à celui ci :
Code :
Private Sub CommandButton1_Click()
Dim element_select As Boolean
Dim nb_element, i As Integer
element_select = False
nb_element = UserForm2.LB2.ListCount
For i = 0 To nb_element
If UserForm2.LB2.Selected = True Then
element_select = True
'et là ?
'element_select.show ?
End If
Next
If element_select = False Then
MsgBox "Veuillez sélectionner une Plaquette"
End If
End Subre,
Un truc que je ne comrprends pas. Dans ton premier code, tu mets userform3 et colonne C et dans ton fichier c'est userform2 et colonne F ???
Le deuxième code Private Sub CommandButton1_Click() est dans quelle USF (là je vois la USF2) ?
Il ya incohérence entre tes deux codes
A te relire
Coucou,
en fait, je bosse sur 2 fichiers Excel (l'une test l'autre définitive).
sur la test je ........ test des choses
parfois je suis complètement incohérent il faut m'excuser
en fait j'ai trouvé ça :
Private Sub CommandButton1_Click()
Usf1.TB2 = UserForm2.LB2
UserForm2.Hide
End Sub=> choix fait dans la List box 2 copié dans la TextBox 2
Je débute j'ai les bases
Merci quand même de l'aide
Mon logiciel progresse, mais chaque fois que je crée quelque chose il y a une erreur je dois pas être assez pointilleux !
Mes feuilles sont nommées Semaine 1, Semaine 2, Semaine 3 .......... Semaine 52.
J'ai réalisé une macro qui note en cellule H3 et H4 le jour et la semaine.
J'ai crée un code qui doit (en théorie) activer une cellule précise d'une feuille selon la semaine actuelle et le jour, mais rien n'y fait !
Private Sub Cmdvalider_Click()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Voulez-vous vraiment valider?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Validation de saisie " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
End If
Application.ScreenUpdating = False
Dim i As Long, j As Long, qtes As Long, col As Long, lgn As Long, dlgn As Long, qtesexist As Long, qtesnouv As Long
Dim jour As String, mvt As String, nomfeuille As String
Dim refplaqchoix As String, refplaqcol As String
' Contrôle des données saisies
If TB1 = "" Or TB2 = "" Or IsNull(LB4) Then
MsgBox "Vous devez obligatoirement sélectionner toutes les données", vbExclamation
Exit Sub
End If
' Contrôle de la saisie du montant
' Affectation des choix
nomfeuille = Range("Bases!H4").Value
jour = Range("Bases!H3").Value
' Sélection de la semaine
For Each Sheet In Worksheets
If Sheet.Name = nomfeuille Then
Sheet.Activate
End If
Next
' No de la colonne
If jour = "Lundi" And Usf1.LB4.Value = "Sorties" Then
col = 11
End If
If jour = "Lundi" And Usf1.LB4.Value = "Entrées" Then
col = 12
End If
If jour = "Mardi" And Usf1.LB4.Value = "Sorties" Then
col = 14
End If
If jour = "Mardi" And Usf1.LB4.Value = "Entrées" Then
col = 15
End If
If jour = "Mercredi" And Usf1.LB4.Value = "Sorties" Then
col = 17
End If
If jour = "Mercredi" And Usf1.LB4.Value = "Entrées" Then
col = 18
End If
If jour = "Jeudi" And Usf1.LB4.Value = "Sorties" Then
col = 20
End If
If jour = "Jeudi" And Usf1.LB4.Value = "Entrées" Then
col = 21
End If
If jour = "Vendredi" And Usf1.LB4.Value = "Sorties" Then
col = 23
End If
If jour = "Vendredi" And Usf1.LB4.Value = "Entrées" Then
col = 24
End If
If jour = "Samedi" And Usf1.LB4.Value = "Sorties" Then
col = 26
End If
If jour = "Samedi" And Usf1.LB4.Value = "Entrées" Then
col = 27
End If
'No de la ligne
refplaqchoix = Usf1.TB2.Value
For j = 10 To 400
refplaqcol = Worksheets("Bases").Cells(j, col).Value
If refplaqchoix = refplaqcol Then
qtesexist = Cells(j, col).Value
qtesnouv = qtesexist + qtes
Cells(lgn, col).Value = qtesnouv
Exit For
End If
Next j
Unload Me
Worksheets("Bases").Activate
Application.ScreenUpdating = True
End SubCe code est pour moi une usine à gaz car il doit y avoir plus simple mais je ne m'en sort pas mieux.
Au pire juste un code qui me sélectionne correctement la feuille en fonction de la cellule H4 (Semaine 18).
Je me débrouille pour le reste.
Merci d'avance à tout le forum.
Re,
Evite d'utiliser des mots VBA pour nommer tes variables (le mot "selection") dans tes codes.
Voici le code modifié
Private Sub Userform_Initialize()
Dim i As Long, j As Long
Dim choix As String
choix = ""
With Sheets("Bases")
j = .Range("C" & Rows.Count).End(xlUp).Row ' à modifier si nécessaire
For i = 3 To j
choix = .Range("C" & i).Value
If choix <> "" Then
UserForm3.LB2.AddItem Sheets("Bases").Cells(i, 3)
End If
Next i
End With
End SubAttention au mot HIDE, qui cache l'USF et ne la décharge pas. Elle reste donc en résidente !!.
Remplace :
userform2.hidepar
Unload Userform2Je vois pour le reste mais le mieux serait que tu remettes un fichier avec les corrections
Amicalement