Instalation de UserForm dans mon fichier

corate92

XLDnaute Junior
Bonjour à tous!

J'ai crée une petite base de données des salariés, je voudrais y intégrer des UserForm pour la saisie etc ...
mais je coince côté programmation des UserForm :confused:

J'ai préparé les userforms mais je ne sais pas comment faire pour que les UserForms face ce que je demande.
jai crée le Userform1 qui sert à ajouter un nouveau salarié, je voudrais que lors de la saisie le nouveau salarié s'ajoute automatique à la fin du tableau sur l'onglet "Base" et que les données saisies dans le User se mettent dans les colonnes.
Puis le UserForm2 sert à sélectionner un salarié qui a quitté la société dans l'onglet Base, le copier dans l'onglet OLD et le supprimer de l'onglet "Base"...

Je ne sais pas si j'arrive à me faire comprendre :(

Mieux que de long discours, une pièce jointe :)

Merci si vous pouvez mettre sur une piste, dans tous les cas merci de m'avoir lu!
 

Pièces jointes

  • bdd persoTEST.zip
    18.3 KB · Affichages: 51
  • bdd persoTEST.zip
    18.3 KB · Affichages: 41
  • bdd persoTEST.zip
    18.3 KB · Affichages: 42

jeanpierre

Nous a quitté
Repose en paix
Re : Instalation de UserForm dans mon fichier

Bonjour Cora,

Ben, tu récupères les valeurs de tes ListBox et de tes TextBox et tu les RANGE dans la feuille en question.

S'il n'y a pas 100 000 mille exemples sur le forum, il n'y en a aucun.

Faire une petite recherche, simple.... en haut à droite...

Ensuite, et pour l'adaptation, pas de problème....

Bon après-midi et bonne recherche.

Jean-Pierre
 

corate92

XLDnaute Junior
Re : Instalation de UserForm dans mon fichier

Bonjour Jean Pierre!
Merci pour ta réponse ultra rapide.
donc je fais textbox1.value=sheets('le nom de la feuille').range('nom de cellule')

mais le problème c'est que je ne peux pas définir la cellule de destination puisqu'elle est variable,au début par exemple c'est "A1" puis "A2", "A33" etc ... comment préciser cela dans la macro?
 

jp14

XLDnaute Barbatruc
Re : Instalation de UserForm dans mon fichier

Bonjour

Ci joint le fichier avec un exemple d'USF.
J'ai utilisé DtPicker.

A tester

JP
 

Pièces jointes

  • bdd persoTEST.zip
    24 KB · Affichages: 55
  • bdd persoTEST.zip
    24 KB · Affichages: 54
  • bdd persoTEST.zip
    24 KB · Affichages: 57

corate92

XLDnaute Junior
Re : Instalation de UserForm dans mon fichier

Hello JP14,

merci pour ton aide! par contre je crois qu'il y a un pb avec la macro suivante:
'-------------------------------------------------------------------------------------
' Module : UserForm1/CommandButton1_Click
' DateTime : 01/02/2008 / 17:46
' Auteur : JP14
' Bouton :enregistrer
'-------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
With Sheets("Base")
dl1 = .Range("A65536").End(xlUp).Row + 1
.Range("a" & dl1) = ComboBox1.Value
.Range("b" & dl1) = TextBox1.Value
.Range("c" & dl1) = TextBox2.Value
.Range("f" & dl1) = TextBox3.Value
.Range("e" & dl1) = ComboBox2.Value
.Range("g" & dl1) = DTPicker1.Value
If OptionButton1.Value = True Then
.Range("j" & dl1) = "Oui"
Else
.Range("j" & dl1) = "Non"
End If

Qu'en pense tu?
 

jp14

XLDnaute Barbatruc
Re : Instalation de UserForm dans mon fichier

Bonsoir

dl1 = .Range("A65536").End(xlUp).Row + 1
Cette ligne permet de trouver la dernière ligne écrite dans la colonne A ( à modifier, il faudrait prendre la colonne b ), on ajoute 1 pour trouver la première ligne disponible.

La ligne 6 a été inscrite de cette manière.
Cela répond à la question

"mais le problème c'est que je ne peux pas définir la cellule de destination puisqu'elle est variable,au début par exemple c'est "A1" puis "A2", "A33" etc ... comment préciser cela dans la macro?"



JP
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Instalation de UserForm dans mon fichier

Bonjour

Pour transférer les données de l'Usf vers la feuille on pourrait écrire

.Range("a" & .Range("A65536").End(xlUp).Row + 1) = ComboBox1.Value
.Range("b" & .Range("A65536").End(xlUp).Row ) = TextBox1.Value
Avec cette écriture
.Range("A65536").End(xlUp).Row n'a pas la même valeur pour les deux lignes.
Il est préférable d'utiliser une variable qui contient une valeur qui est la même pendant l'exécution de la procédure.
dl1 : dernière ligne
dl1 = .Range("A65536").End(xlUp).Row + 1
.Range("a" & dl1) = ComboBox1.Value
.Range("b" & dl1) = TextBox1.Value

Plus d'info sur les variables
Utiliser les variables en VBA Excel - Club d'entraide des développeurs francophones
JP
 

mercant76

XLDnaute Impliqué
Re : Instalation de UserForm dans mon fichier

bonjour,

Ci joint ton fichier modifié.

dis moi ce que tu en penses ?

@+
 

Pièces jointes

  • bdd persoTEST.zip
    21.4 KB · Affichages: 51
  • bdd persoTEST.zip
    21.4 KB · Affichages: 45
  • bdd persoTEST.zip
    21.4 KB · Affichages: 47

jp14

XLDnaute Barbatruc
Re : Instalation de UserForm dans mon fichier

Bonjour

Ci joint une version plus élaborée.

Les macros et les usf sont dans le fichier gérer.
Dans l'éditeur vba il faut utiliser l'option importer un fichier du menu "fichier".
Il faut installer le contrôle Montview de microsoft.


Quand on sélectionne un enregistrement la variable publique contient le numéro de ligne de la feuille excel, ce numéro permet son exploitation dans l'usf de mise à jour.
Un contrôle du chiffre clé est réalisé pour le numéro INSEE. A la saisie un espace est inséré automatiquement pour en faciliter la lecture, cet espace est supprimé lors de l'écriture dans la feuille.
A tester
A modifier en fonction de l'application.

JP
 

Pièces jointes

  • gerer.zip
    6.5 KB · Affichages: 61
  • basedonneev2.zip
    46.7 KB · Affichages: 66

corate92

XLDnaute Junior
Re : Instalation de UserForm dans mon fichier

Bonjour à tous,

Lundi matin retour au bureau :(
Mercant, jai regardé ton fichier le code ppour ajouter un salarié marche NIQUEL c'est exactement ce que je voulais!!!! Par contre, le code pour archiver a un pb, VBA me surligne cela :
Selection.Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


Qu'en penses tu?

JP merci vraiment de te préoccuper de mon cas quelque peu ... complexe et un peu chiant! mais j'ai de nouveau un pb : un message "erreur de compilation..."

' Module : UserForm1/UserForm_Initialize
' DateTime : 02/02/2008 / 20:48
' Auteur : JP14
' Utilisation :initialisation de l'userform
'-------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Dim pos1 As Integer
flag = True ' pour empécher le lancement des controles
'ligne2 = 3
With ComboBox1
.AddItem "M."
.AddItem "Mme"
.AddItem "Melle"
.AddItem "M. ou Mme"
End With
OptionButtonn9.Value = True
OptionButtonn10.Value = True
Call remplircombo("Base", "e", 5)
DTPicker7.Value = Now
Select Case ligne2
Case 0 ' création
Label1.Caption = "Vous souhaitez ajouter un salarié, veuillez remplir les données suivantes:"
UserForm1.Caption = "Création d'un salarié"
TextBox8.Visible = False
Label11.Visible = False
Label16.Visible = False

Case Else 'modification
dl1 = ligne2
With Sheets("Base")
UserForm1.Caption = "Modification d'un salarié"
ComboBox1.Value = .Range("a" & dl1)
TextBox2.Value = .Range("b" & dl1)
TextBox3.Value = .Range("c" & dl1)

If .Range("d" & dl1) <> "" Then
For i = 1 To Len(.Range("d" & dl1))
If i < 14 Then TextBox4.Value = TextBox4.Value & Mid(.Range("d" & dl1), i, 1)
Next i
If Len(.Range("d" & dl1)) > 13 Then TextBoxcle4.Value = Mid(.Range("d" & dl1), 14, 2)
End If

ComboBox5.Value = .Range("e" & dl1)
TextBox6.Value = .Range("f" & dl1)
DTPicker7.Value = .Range("g" & dl1)

If .Range("i" & dl1) = "Oui" Then
TextBox8.Visible = True
Label11.Visible = True
TextBox8.Value = .Range("h" & dl1)
OptionButtono9.Value = True
Else
TextBox8.Visible = False
Label11.Visible = False
End If


If .Range("j" & dl1) = True Then
OptionButtono10.Value = True
End If

If .Range("k" & dl1) <> "" Then
pos1 = InStr(1, .Range("k" & dl1), "@")
If pos1 > 0 Then
TextBox11.Value = Mid(.Range("k" & dl1), 1, pos1 - 1)
TextBoxa11.Value = Mid(.Range("k" & dl1), pos1 + 1, 100)
End If
End If
End With
End Select
flag = False
End Sub
 

jp14

XLDnaute Barbatruc
Re : Instalation de UserForm dans mon fichier

Bonjour

J'ai parfois le même problème lorsque je télécharge un fichier du forum des erreurs de compilation sur des fonctions très basique comme MID FORMAT ou autre. Mystère ?

Pour résoudre ce problème j'utilise un nouveau classeur et je copie les différents fichiers et données par un copier coller et j'importe les macros, c'est ce que j'ai fait avec ton fichier de base.

Cette fonction dans un premier temps peut être supprimée en mettant l'apostrophe devant la ligne.
Je l'utilise pour séparer le numéro Insee de la clef.

JP
 
Dernière édition:

emile12

XLDnaute Junior
Re : Instalation de UserForm dans mon fichier

Bonjour le forum

en lisant vos commentaires celui de jp m'interpelle:

" J'ai parfois le même problème lorsque je télécharge un fichier du forum des erreurs de compilation sur des fonctions très basique comme MID FORMAT ou autre. Mystère ? "

Comment faite vous pour importer les Macros?.

Excuse moi Corate92 de m'insérer dans ton sujet.
Cordialement

Emile
 

Discussions similaires

Réponses
5
Affichages
135

Statistiques des forums

Discussions
312 307
Messages
2 087 096
Membres
103 468
dernier inscrit
TRINITY