Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

candido57

XLDnaute Occasionnel
Je n’arrive pas a faire fonctionner la saisie auto.

Pouvez vous m’aider?

J’ai essayé de m’aventurer dans les macros , mais rien à faire ça ne rentre pas.

Qui pourrait me corriger ma macro.

Merci
 

Pièces jointes

Re : Macro, userform

Bonsoir Candido, bonsoir le forum,

En pièce jointe ton fichier modifié. J'ai attribué à la propriété Tag de chaque contrôle une valeur qui correspond au numéro de la colonne dans laquelle la valeur doit être écrite. Cela permet de reporter les données à l'aide d'une boucle. Sans cette valeur le code ne fonctionnera pas... L'alimentation des deux ComboBoxes est faite dynamiquement et leur propriété RowSource supprimée.
Le code :
Code:
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim d As Object 'déclare la variable d (onglet Datas)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim dn As Integer 'déclare la variable dn (Dernier Numéro)

Set d = Sheets("Datas") 'définit l'onglet d
dl = d.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 1 (=A)
Set pl = d.Range("A2:A" & dl) 'définit la plage pl (colonne A)
Me.ComboBox1.List = pl.Value 'alimente dynamiquement la ComboBox1
dl = d.Cells(Application.Rows.Count, 3).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 3 (=C)
Set pl = d.Range("C2:C" & dl) 'définit la plage pl (colonne C)
Me.ComboBox2.List = pl.Value 'alimente dynamiquement la ComboBox2
dn = Application.WorksheetFunction.Max(b.Columns(1)) 'définit le dernier numéro utilisé (le plus grand)
Me.TextBox15.Value = dn + 1 'incrémente le dernier numéro et place la valeur dans la TextBox15
Me.TextBox14.Value = Format(Date, "dd/mm/yyyy") 'place la date dans la TextBox14
End Sub
Code:
Private Sub CommandButton1_Click() 'bouton "Valider"
Dim b As Object 'déclare la variable b (onglet Base)
Dim plv As Long 'déclare la variable plv (Première Ligne Vide)
Dim ctrl As Control 'déclare la variable ctrl (ConTRôLe)
Set b = Sheets("Base") 'définit l'onglet b
plv = b.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'définit la première ligne vide
For Each ctrl In Me.Controls 'boucle sur tous les contrôles ctrl de l'UserForm1
    'condition : si le contrôle est une TextBox ou une ComboBox
    If TypeOf ctrl Is MSForms.TextBox Or TypeOf ctrl Is MSForms.ComboBox Then
        'place la valeur du contrôle dans la ligne plv en fonction de la colonne renseignée par la propriété "TAG"
        b.Cells(dl, CByte(ctrl.Tag)).Value = ctrl.Value
    End If 'fin de la condition
Next ctrl 'prochain contrôle de la boucle
Unload Me 'vide et ferme l'UserForm
UserForm1.Show 'affiche l'Userform1
End Sub
Code:
Private Sub CommandButton2_Click()
Unload Me 'vide et ferme l'UserForm
End Sub
Le fichier :
 

Pièces jointes

Re : Macro, userform

Super , merci beaucoup.

J’ai réussi à trouver le problème avant de voir votre réponse.


Encore une petite question. J’aimerais vraiment apprendre écrire une macro.
Est-ce qu’il y a un livre ou CD pour apprendre facilement ?
Car j’essai de comprendre, mais je ne connais pas la logique de tous ces codes.

Encore un grand merci
 
Re : Macro, userform

Bonjour Candido, bonjour le forum,

Difficile de te conseiller un livre. J'ai utilisé au début "Visual Basic - Excel 97" (je ne sais plus ni le titre exact, ni l'éditeur) mais je n'y comprenais absolument rien, n'ayant aucune base de programmation. Finalement c'est ici que j'ai pratiquement tout appris. Le bouquin m'a un peu servi après avoir acquis quelques bases mais pas tant que ça... Ce sont les éminents membres de ce forum qui m'ont permis de progresser rapidement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
263
  • Question Question
Microsoft 365 Formule
Réponses
3
Affichages
196
Réponses
3
Affichages
313
Réponses
7
Affichages
553
Réponses
1
Affichages
162
Retour