[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 Sub

Si 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 Sub

Je 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 Sub

re,

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 Sub

Ce 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 Sub

Attention au mot HIDE, qui cache l'USF et ne la décharge pas. Elle reste donc en résidente !!.

Remplace :

userform2.hide

par

Unload Userform2

Je vois pour le reste mais le mieux serait que tu remettes un fichier avec les corrections

Amicalement

Rechercher des sujets similaires à "xls 2007 donnees colonne source boite dialogue"