Données d'un userform vers une autre feuille excel
Résolu
fairway111
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
fairway111 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
fairway111 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Données d'un userform vers une autre feuille excel
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
2 réponses
Bonjour,
Bloc With...End With :
Bloc With...End With :
Private Sub CommandButton3_Click() With Sheets("LBP") .Rows("3:3").Insert Shift:=x1Down, CopyOrigin:=x1FormatFromLeftOrAbove .Range("A3").Value = ComboBox1 .Range("B3").Value = TextBox1 .Range("C3").Value = TextBox2 .Range("D3").Value = TextBox3 .Range("E3").Value = TextBox4 .Range("F3").Value = TextBox5 .Range("G3").Value = TextBox6 .Range("H3").Value = DTPicker1 .Range("I3").Value = TextBox8 .Range("J3").Value = ComboBox2 End With End Sub
Merci pour le conseil,
C'est vrai que ça simplifie le code sans mettre Sheets à chaque ligne et si je comprends bien ça embarque tous les codes se référant à la feuille dans un seul bloc?
Si j'abuse encore un peu , une fois validées les données, les champs du Userform1 restent remplis et j'aimerais qu'ils se vident
Si je mets ce code en plus:
Unload Userform1
Download Userform1
UserForm1.Show
Y a t'il une autre méthode?
C'est vrai que ça simplifie le code sans mettre Sheets à chaque ligne et si je comprends bien ça embarque tous les codes se référant à la feuille dans un seul bloc?
Si j'abuse encore un peu , une fois validées les données, les champs du Userform1 restent remplis et j'aimerais qu'ils se vident
Si je mets ce code en plus:
Unload Userform1
Download Userform1
UserForm1.Show
Y a t'il une autre méthode?
tous les codes se référant à la feuille dans un seul bloc?
Pas tous. Sont "rattachés" à la feuille uniquement les Range précédés d'un point. Les autres se réfèrent à la feuille active.
Exemple :
Avec l'habitude ça vient...
Y a t'il une autre méthode?
Oui.
Pour cela, j'ai l'habitude de passer par une fonction à part.
Dans ton exemple, avec les contrôles que tu nous indiques, cela donnerait :
Et donc, pour vider l'UserForm, tu n'as qu'à placer dans ton code, ou tu le souhaites :
Pas tous. Sont "rattachés" à la feuille uniquement les Range précédés d'un point. Les autres se réfèrent à la feuille active.
Exemple :
'on place la feuil1 comme feuille active Sheets("Feuil1").Select 'on fait référence à la Feuil2 dans le bloc With : With Sheets("Feuil2") 'avec un point devant : on agit sur la Feuil2 .Range("A1") = 18 'sans le point on agit sur la feuille active : Feuil1 Range("A2") = 13 End With
Avec l'habitude ça vient...
Y a t'il une autre méthode?
Oui.
Pour cela, j'ai l'habitude de passer par une fonction à part.
Dans ton exemple, avec les contrôles que tu nous indiques, cela donnerait :
Sub Vide_Controles() ComboBox1.ListIndex = 0 TextBox1.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" TextBox5.Value = "" TextBox6.Value = "" DTPicker1 = Date 'remet par défaut la date du jour TextBox8.Value = "" ComboBox2.ListIndex = 0 End Sub
Et donc, pour vider l'UserForm, tu n'as qu'à placer dans ton code, ou tu le souhaites :
Call Vide_Controles
"La méthode Select de la classe Range a échoué" !!