Création d'un formulaire

JFR

XLDnaute Nouveau
Bonjour,

Je cherche à créer un formulaire pour une saisie automatique.
C'est un fichier qui sera en partagé avec multi utilisateurs.
J'aimerai que le formulaire apparaisse directement en haut du tableau et la possibilité d'avoir une archive.
Merci pour votre aide
 

Pièces jointes

  • Main courante 1.xlsx
    13.2 KB · Affichages: 97

ArmelleM

XLDnaute Junior
Bonjour, j'ai la meme demande, pour simplifier le quotidien d'utilisateur, j'aimerai créer un formulaire pour ajouter des données et vérifier le controle de pièces, je suis allée sur le lien, j'ai testé un lien formulaire et lors du telechargement je n'arrive pas à ouvrir le fichier ( il me demande d'ouvrir une appli ?) voilà je voulais savoir si c'était mon ordi et excel qui buguait ou s'il fallait télécharger une option excel en plus? Je suis neophyte :) merci à vous au cas ou :)
 

cathodique

XLDnaute Barbatruc
Bonsoir,:)

Je ne sais pas quel fichier tu as téléchargé? Je t'assure qu'à mes débuts, j'avais réussi à monter mes premiers userforms en me basant sur ceux de Boisgontier.

Ton fichier est vide à l'exception des entêtes de colonnes. Mets-y quelques lignes et explique-nous un peu tes tenants et aboutissants.

Bonne soirée.
 

ArmelleM

XLDnaute Junior
Bonjour Cathodique,
je te remercie de prendre le temps de me répondre. tu m'avais déjà aidé la dernière fois. Ta macro me sert tous les jours depuis. C'est un bonheur. Mon besoin est de créer un fichier partagé me permettant de piloter un flux d'activité pour améliorer le quotidien des personnes qui travaillent "à l'aveugle" le temps d'adapter justement leurs outils et environnement de travail, et de les aider à rendre leur activité efficace. Le formulaire me permettrait un usage simultané ( le fichier excel ne pouvant etre partagé sans contraintes), de pouvoir modifier les données, enregistrer de nouvelles lignes via le formulaire.

J'ai téléchargé le fichier suivant FormMod(xls) mais je ne peux pas l'ouvrir sur mon Excel ( alors que je n'ai pas de soucis sur Excel en général)
du coup j'ai aussi regardé sur Google pour essayer de comprendre et de créer mon formulaire partagé (afin de créer une base de données modifiable et piloter un flux d'activité. ) j'ai pris le fichier en PJ comme base et cette macro pour vérifier que cela était bien ce que je voulais et que ca marchait. Comme mes colonnes noms prénoms sont différenciées, dans la macro ci-dessous non donc ca bug :(
Si les lignes sont vides c'est que je voulais pouvoir créer une ligne via le formulaire, ou modifier deja existante en fait, les enregistrer et les valider. c'est tout nouveau pour moi :)

en fait, J'ai compris la logique mais je parle pas la langue toutefois je ne sais pas si c'est parce que finalement dans mon tableau j'ai plus de colonne ou si c'est parce que j'ai deux colonnes noms prenom ? ou rien dans mes lignes ! je n'ai pas réussi à enregistrer ou retrouver mon formulaire et ma macro :( mais j'ai compris comment faire quelque chose de simple.
Pour le fichier téléchargé sur ton lien, comme je t'ai dit pas possible de l'ouvrir

voila j'espère avoir été claire, précise et ne pas trop t'avoir "saoulé" :) et te remercie si tu reprends le temps de me répondre.

sur YouTube

Code pour le bouton Ajouter :

If ComboBox1.Value = "" Then
MsgBox "Veuillez renseigner le champs 'Nom/Prénom' "
Else
Dim ligne As Integer
If MsgBox("confirmez-vous l'ajout des données?",vbYesNo,"confirmation") = vbYes Then
Worksheets("Feuil1").Select
ligne = Sheets("Feuil1").Range("A456541").End(xlUp).Row + 1
Cells(ligne, 1) = TextBox1.Value
Cells(ligne, 2) = ComboBox1.Value
Cells(ligne, 3) = TextBox2.Value
Cells(ligne, 4) = TextBox3.Value
Cells(ligne, 5) = TextBox4.Value
Cells(ligne, 6) = TextBox5.Value
Cells(ligne, 7) = TextBox6.Value
Unload UserForm1
UserForm1.Show
Else
End If
End If

Code pour le bouton Recherche :

If Not ComboBox1.Value = "" Then
Dim no_ligne As Integer
no_ligne = ComboBox1.ListIndex + 2
TextBox1.Value = Cells(no_ligne, 1).Value
ComboBox1.Value = Cells(no_ligne, 2).Value
TextBox2.Value = Cells(no_ligne, 3).Value
TextBox3.Value = Cells(no_ligne, 4).Value
TextBox4.Value = Cells(no_ligne, 5).Value
TextBox5.Value = Cells(no_ligne, 6).Value
TextBox6.Value = Cells(no_ligne, 7).Value
Else
End If

Code pour le bouton Modifier :

Dim modif As Integer
If Not ComboBox1.Value = "" Then
Sheets("Feuil1").Select
modif = ComboBox1.ListIndex + 2
Cells(modif, 1) = TextBox1.Value
Cells(modif, 2) = ComboBox1.Value
Cells(modif, 3) = TextBox2.Value
Cells(modif, 4) = TextBox3.Value
Cells(modif, 5) = TextBox4.Value
Cells(modif, 6) = TextBox5.Value
Cells(modif, 7) = TextBox6.Value
MsgBox ("Modification effectuer")
Else
MsgBox ("Veuillez sélectionné le Nom/Prénom de la personne a modifier")
Exit Sub
End If
Unload UserForm1
UserForm1.Show 0
 

Pièces jointes

  • FOrmModifCreation.xls
    107.5 KB · Affichages: 53
  • Copie de Suivi flux.xlsx
    25.2 KB · Affichages: 43

cathodique

XLDnaute Barbatruc
Bonsoir ArmelleM,

Sur le fichier de Boisgontier il y a 8 colonnes alors que sur le tien il y en a 17.
Il faudrait commencer par faire ton userform. Désolé, mais je n'ai pas de temps pour le faire à ta place.
Si c'est pour donner un coup de main, c'est avec un très plaisir.
Mets un fichier avec un userform et quelques lignes de données sur la feuille.

@+
 

ArmelleM

XLDnaute Junior
c'est le fichier de boisgontier que j'ai pas pu ouvrir l'autre c'est le mien, et je pensais avoir enregistre la macro et le user form... je vais refaire le mien ( que j'ai crée sur la base du lien you tube et la macro que je t'ai copie colle avec grand plaisir car j'ai vraiment appris quelque chose de nouveau. je te la renverrai
 

Regueiro

XLDnaute Impliqué
Bonsoir le Forum, ArmelleM
Voici ton fichier en retour.
1. Onglet 2017 les données sous forme de tableau "tableau1"
2. Lance le USF1
Création automatique des labels en fonction du nombre de colonnes de ton tableau1
Création automatique des textbox en fonction du nombre de colonnes de ton tableau1
Petit problème dans le USF1 je n'arrive plus créer les 17 textbox ??

Sur le USF" pas de problème ??
CODE POUR USF 1
VB:
Option Explicit
Dim lstObj As ListObject
Dim Plage As Range
Dim X, Y As Integer
Dim nbcol
Dim Ctrl As Control
Dim Obj As Control
Dim Obj2 As Control
Dim collect As Collection

Private Sub UserForm_Initialize()
'xxx DECLARATION DES VARIABLES xxxxxxxxxxxxxxx
Dim a, b, c, d, e, f, g, h
    a = 10    'Position Leff
    b = 190     'largeur Width
    c = 20      'Hauteur Height
    d = 10       'Position Top
   
Set lstObj = Worksheets("2017").ListObjects("Tableau1")
nbcol = lstObj.HeaderRowRange.Count
MsgBox nbcol
Set Plage = lstObj.DataBodyRange
Set collect = New Collection
    For X = 1 To nbcol 'boucle pour la création des Labels
        Set Obj = Me.Controls.Add("forms.Label.1")
        With Obj
            'On mets les titres du tableau1 en majuscule dans les labels
            Me("label" & X).Caption = " " & X & ".  " & UCase(lstObj.HeaderRowRange.Cells(X) & " :")
    
'xxxxxxxx ALIMENTATION DES LABELS xxxxxxxxxxxxx
                With Me("Label" & X)
                    .Left = a
                    .Width = b
                    .Height = c
                    .Top = d
                    .ForeColor = vbBlack 'vbRed
                    .Font.Name = "Arial Narrow"
                    .Font.Size = 8
                    .Font.Bold = True
                    .BorderStyle = 1
                    d = d + 25     'Décalage pour le positionnement du prochain Label
                End With
        End With
    Next X
        Set Obj = Nothing
       
    For Y = 1 To nbcol 'boucle pour la création des TextBox
       Set Obj = Me.Controls.Add("forms.textbox.1", , True)
        'Set Obj2 = Me.Controls.Add("forms.textbox.1")
 
            e = 210     'Position Leff
            f = 150  'largeur Width
            g = 20      'Hauteur Height
            h = 10       'Position Top
           
        With Obj
           
          
            With Me("TextBox" & Y)
           ' .Name = "TextBox" & Y
                .Left = e
                .Width = f
                .Height = g
                .Top = h
                h = h + 25      'Décalage pour le positionnement du prochain TextBox
                'a = a + 5
           End With
     
        End With
          
Next Y
End Sub

CODE POUR USF2
VB:
Option Explicit

Dim collect As Collection
Dim lstObj As ListObject
Dim Plage As Range
Dim X, Y As Integer
Dim nbcol
Dim Ctrl As Control
Dim Obj As Object
Dim Obj2 As Object
Private Sub UserForm_Initialize()
'xxx DECLARATION DES VARIABLES xxxxxxxxxxxxxxx
Dim a, b, c, d
    a = 10    'Position Leff
    b = 190     'largeur Width
    c = 20      'Hauteur Height
    d = 10       'Position Top
   
Set lstObj = Worksheets("2017").ListObjects("Tableau1")
nbcol = lstObj.HeaderRowRange.Count
MsgBox nbcol
Set Plage = lstObj.DataBodyRange

 
       
    For Y = 1 To nbcol 'boucle pour la création des TextBox
        'Set Obj2 = UserForm2.Controls.Add("forms.Textbox.1")
        Set Obj2 = UserForm2.Controls.Add("forms.textbox.1")
    'For Y = 1 To 7 'nbcol 'boucle pour la création des TextBox
        With Obj2
           
            With Me("TextBox" & Y)
                .Left = a
                .Width = b
                .Height = c
                .Top = d
                d = d + 25      'Décalage pour le positionnement du prochain TextBox
            End With

        End With
         Next Y
End Sub

MERCI DE VOTRE AIDE
 

Pièces jointes

  • XLD Suivi flux.xlsm
    35.8 KB · Affichages: 52

abdelatif96

XLDnaute Nouveau
Bonjour Cathodique,
je te remercie de prendre le temps de me répondre. tu m'avais déjà aidé la dernière fois. Ta macro me sert tous les jours depuis. C'est un bonheur. Mon besoin est de créer un fichier partagé me permettant de piloter un flux d'activité pour améliorer le quotidien des personnes qui travaillent "à l'aveugle" le temps d'adapter justement leurs outils et environnement de travail, et de les aider à rendre leur activité efficace. Le formulaire me permettrait un usage simultané ( le fichier excel ne pouvant etre partagé sans contraintes), de pouvoir modifier les données, enregistrer de nouvelles lignes via le formulaire.

J'ai téléchargé le fichier suivant FormMod(xls) mais je ne peux pas l'ouvrir sur mon Excel ( alors que je n'ai pas de soucis sur Excel en général)
du coup j'ai aussi regardé sur Google pour essayer de comprendre et de créer mon formulaire partagé (afin de créer une base de données modifiable et piloter un flux d'activité. ) j'ai pris le fichier en PJ comme base et cette macro pour vérifier que cela était bien ce que je voulais et que ca marchait. Comme mes colonnes noms prénoms sont différenciées, dans la macro ci-dessous non donc ca bug :(
Si les lignes sont vides c'est que je voulais pouvoir créer une ligne via le formulaire, ou modifier deja existante en fait, les enregistrer et les valider. c'est tout nouveau pour moi :)

en fait, J'ai compris la logique mais je parle pas la langue toutefois je ne sais pas si c'est parce que finalement dans mon tableau j'ai plus de colonne ou si c'est parce que j'ai deux colonnes noms prenom ? ou rien dans mes lignes ! je n'ai pas réussi à enregistrer ou retrouver mon formulaire et ma macro :( mais j'ai compris comment faire quelque chose de simple.
Pour le fichier téléchargé sur ton lien, comme je t'ai dit pas possible de l'ouvrir

voila j'espère avoir été claire, précise et ne pas trop t'avoir "saoulé" :) et te remercie si tu reprends le temps de me répondre.

sur YouTube

Code pour le bouton Ajouter :

If ComboBox1.Value = "" Then
MsgBox "Veuillez renseigner le champs 'Nom/Prénom' "
Else
Dim ligne As Integer
If MsgBox("confirmez-vous l'ajout des données?",vbYesNo,"confirmation") = vbYes Then
Worksheets("Feuil1").Select
ligne = Sheets("Feuil1").Range("A456541").End(xlUp).Row + 1
Cells(ligne, 1) = TextBox1.Value
Cells(ligne, 2) = ComboBox1.Value
Cells(ligne, 3) = TextBox2.Value
Cells(ligne, 4) = TextBox3.Value
Cells(ligne, 5) = TextBox4.Value
Cells(ligne, 6) = TextBox5.Value
Cells(ligne, 7) = TextBox6.Value
Unload UserForm1
UserForm1.Show
Else
End If
End If

Code pour le bouton Recherche :

If Not ComboBox1.Value = "" Then
Dim no_ligne As Integer
no_ligne = ComboBox1.ListIndex + 2
TextBox1.Value = Cells(no_ligne, 1).Value
ComboBox1.Value = Cells(no_ligne, 2).Value
TextBox2.Value = Cells(no_ligne, 3).Value
TextBox3.Value = Cells(no_ligne, 4).Value
TextBox4.Value = Cells(no_ligne, 5).Value
TextBox5.Value = Cells(no_ligne, 6).Value
TextBox6.Value = Cells(no_ligne, 7).Value
Else
End If

Code pour le bouton Modifier :

Dim modif As Integer
If Not ComboBox1.Value = "" Then
Sheets("Feuil1").Select
modif = ComboBox1.ListIndex + 2
Cells(modif, 1) = TextBox1.Value
Cells(modif, 2) = ComboBox1.Value
Cells(modif, 3) = TextBox2.Value
Cells(modif, 4) = TextBox3.Value
Cells(modif, 5) = TextBox4.Value
Cells(modif, 6) = TextBox5.Value
Cells(modif, 7) = TextBox6.Value
MsgBox ("Modification effectuer")
Else
MsgBox ("Veuillez sélectionné le Nom/Prénom de la personne a modifier")
Exit Sub
End If
Unload UserForm1
UserForm1.Show



bonjour peut on enlever la feuille excel et travaille sur une autre formule merci
 

abdelatif96

XLDnaute Nouveau
Bonjour Cathodique,
je te remercie de prendre le temps de me répondre. tu m'avais déjà aidé la dernière fois. Ta macro me sert tous les jours depuis. C'est un bonheur. Mon besoin est de créer un fichier partagé me permettant de piloter un flux d'activité pour améliorer le quotidien des personnes qui travaillent "à l'aveugle" le temps d'adapter justement leurs outils et environnement de travail, et de les aider à rendre leur activité efficace. Le formulaire me permettrait un usage simultané ( le fichier excel ne pouvant etre partagé sans contraintes), de pouvoir modifier les données, enregistrer de nouvelles lignes via le formulaire.

J'ai téléchargé le fichier suivant FormMod(xls) mais je ne peux pas l'ouvrir sur mon Excel ( alors que je n'ai pas de soucis sur Excel en général)
du coup j'ai aussi regardé sur Google pour essayer de comprendre et de créer mon formulaire partagé (afin de créer une base de données modifiable et piloter un flux d'activité. ) j'ai pris le fichier en PJ comme base et cette macro pour vérifier que cela était bien ce que je voulais et que ca marchait. Comme mes colonnes noms prénoms sont différenciées, dans la macro ci-dessous non donc ca bug :(
Si les lignes sont vides c'est que je voulais pouvoir créer une ligne via le formulaire, ou modifier deja existante en fait, les enregistrer et les valider. c'est tout nouveau pour moi :)

en fait, J'ai compris la logique mais je parle pas la langue toutefois je ne sais pas si c'est parce que finalement dans mon tableau j'ai plus de colonne ou si c'est parce que j'ai deux colonnes noms prenom ? ou rien dans mes lignes ! je n'ai pas réussi à enregistrer ou retrouver mon formulaire et ma macro :( mais j'ai compris comment faire quelque chose de simple.
Pour le fichier téléchargé sur ton lien, comme je t'ai dit pas possible de l'ouvrir

voila j'espère avoir été claire, précise et ne pas trop t'avoir "saoulé" :) et te remercie si tu reprends le temps de me répondre.

sur YouTube

Code pour le bouton Ajouter :

If ComboBox1.Value = "" Then
MsgBox "Veuillez renseigner le champs 'Nom/Prénom' "
Else
Dim ligne As Integer
If MsgBox("confirmez-vous l'ajout des données?",vbYesNo,"confirmation") = vbYes Then
Worksheets("Feuil1").Select
ligne = Sheets("Feuil1").Range("A456541").End(xlUp).Row + 1
Cells(ligne, 1) = TextBox1.Value
Cells(ligne, 2) = ComboBox1.Value
Cells(ligne, 3) = TextBox2.Value
Cells(ligne, 4) = TextBox3.Value
Cells(ligne, 5) = TextBox4.Value
Cells(ligne, 6) = TextBox5.Value
Cells(ligne, 7) = TextBox6.Value
Unload UserForm1
UserForm1.Show
Else
End If
End If

Code pour le bouton Recherche :

If Not ComboBox1.Value = "" Then
Dim no_ligne As Integer
no_ligne = ComboBox1.ListIndex + 2
TextBox1.Value = Cells(no_ligne, 1).Value
ComboBox1.Value = Cells(no_ligne, 2).Value
TextBox2.Value = Cells(no_ligne, 3).Value
TextBox3.Value = Cells(no_ligne, 4).Value
TextBox4.Value = Cells(no_ligne, 5).Value
TextBox5.Value = Cells(no_ligne, 6).Value
TextBox6.Value = Cells(no_ligne, 7).Value
Else
End If

Code pour le bouton Modifier :

Dim modif As Integer
If Not ComboBox1.Value = "" Then
Sheets("Feuil1").Select
modif = ComboBox1.ListIndex + 2
Cells(modif, 1) = TextBox1.Value
Cells(modif, 2) = ComboBox1.Value
Cells(modif, 3) = TextBox2.Value
Cells(modif, 4) = TextBox3.Value
Cells(modif, 5) = TextBox4.Value
Cells(modif, 6) = TextBox5.Value
Cells(modif, 7) = TextBox6.Value
MsgBox ("Modification effectuer")
Else
MsgBox ("Veuillez sélectionné le Nom/Prénom de la personne a modifier")
Exit Sub
End If
Unload UserForm1
UserForm1.Show 0
bonjour on peut pas Ajouter un fichier PDF
 

Discussions similaires

Réponses
22
Affichages
687

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510