IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform - comment répéter une suite de champ à remplir


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Utilisateur occasionnel
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Utilisateur occasionnel

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Par défaut Userform - comment répéter une suite de champ à remplir
    Bonjour à tous !

    Je suis nouveau sur le forum et tout d'abord un grand merci d'avance pour votre aide et vos conseils.

    Je suis de niveau débutant-intermédiaire et je bloque sur le problème suivant :

    J'ai la liste suivante :
    Pierre
    Caillou
    Feuille
    Ciseau

    Et j'aimerai créer un userform où l'utilisateur en ouvrant l'userform doit donner une valeur pour Pierre, cliquer sur le bouton "VALIDER", que la valeur correspondante soit enregistrée dans mon tableau puis à nouveau l'utilisateur doit donner une valeur pour Caillou, clique sur le bouton "VALIDER", que la valeur correspondante soit enregistrée dans mon tableau et ainsi de suite pour toutes les valeurs ...

    L'exemple est assez simpliste mais la liste peut varier et je peux avoir plusieurs dizaines de données et j'aimerai comprendre comment je peux y arriver...

    Merci par avance pour votre aide,
    Guihu

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Tu devrais faire un truc qui ressemble à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").cells(1,1) = Textbox1.text
    Avec comme évènement le clic sur le bouton

  3. #3
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Peut-être plus simple sans formulaire mais en utilisant InputBox
    sachant que la liste commence en A2 d'où ligne = 2
    la boucle s'arrête dès la première cellule vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub saisie()
     Dim ligne As Long, s As String
     ligne = 2
     Do Until Sheets("Feuil1").Cells(ligne, 1) = ""
      s = InputBox("Entrer la valeur pour " & Sheets("Feuil1").Cells(ligne, 1) & " : ", "Saisie", vbOKCancel)
      Sheets("Feuil1").Cells(ligne, 2) = s
      ligne = ligne + 1
     Loop
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Si tu veux malgré tout une Form, voici un petit exemple. Tu pose sur ta Form 1 Label, 1 TextBox et 1 bouton (dans un premier temps sans les renommer) puis tu colle le code ci-dessous dans le module de ta Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    Dim Tbl() As String
    Dim TblIntitule
    Dim I As Integer
     
    Private Sub UserForm_Initialize()
     
       TblIntitule = Array("Pierre", "Ciseaux", "Feuille", "Cailloux")
       Label1.Caption = TblIntitule(0)
     
    End Sub
     
    Private Sub CommandButton1_Click()
     
        'redimensionne le tableau
        I = I + 1
        ReDim Preserve Tbl(1 To I)
     
        'y stocke la valeur
        Tbl(I) = TextBox1.Text
     
        'vide le TextBox
        TextBox1.Text = ""
     
        'si le compte est bon (ici, 4 valeurs)
        If I = 4 Then
     
            'petit message (à virer !)
            MsgBox "C'est fini !" & vbCrLf & _
                   "Vous avez saisi les valeurs suivantes :" & vbCrLf & _
                   Tbl(1) & vbCrLf & _
                   Tbl(2) & vbCrLf & _
                   Tbl(3) & vbCrLf & _
                   Tbl(4)
     
            'inscrit les valeurs saisies dans la colonne A
            Range("A1:A" & UBound(Tbl)).Value = Application.WorksheetFunction.Transpose(Tbl())
     
            'vide le tableau
            Erase Tbl()
     
            'repart à zéro
            I = 0
     
            'et fin
            Exit Sub
     
        End If
     
        'défini le titre
        Label1.Caption = TblIntitule(I)
     
        'redonne le focus au TextBox
        TextBox1.SetFocus
     
    End Sub
    Hervé.

  5. #5
    Candidat au Club
    Homme Profil pro
    Utilisateur occasionnel
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Utilisateur occasionnel

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Par défaut
    Merci à tous pour vos réponses.

    La solution de Theze est tip top ce que je recherche, ça marche d'enfer !

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. background : comment répéter une image à gauche ET à droite?
    Par lajarjille dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 29/01/2008, 21h09
  2. Comment gerer une suite non linéaire?
    Par nicoroth dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2007, 13h26
  3. Réponses: 3
    Dernier message: 18/07/2006, 10h17
  4. Comment obtenir une suite numerique de 001 à 150 ?
    Par xender666 dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2006, 20h24
  5. Réponses: 9
    Dernier message: 04/12/2005, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo