Coder un Userform

Bonjour

J'ai une feuille nommée "CAISSE"

Une plage de cellules G2:H34

J'ai créer un bouton qui lance l'Userform1

Dans l'Userform1 je souhaiterais exporter les données

de cette plage de cellules

Je précise que cette plage est modifiable

Comment et quel objet utiliser pour réaliser ce projet ?

Je voudrais qu'il serve de fenêtre de contrôle

Merci de votre aide

Eric

4classeur1.xlsm (20.79 Ko)

Bonjour Éric, bonjour le forum,

Que veux-tu dire par plage modifiable ? Que sa taille peut-être modifiée ou simplement que les données contenues peuvent être modifiées.

Afficher des données c'est relativement simple. 36 x 2 Textboxes / 2 comboboxes à 1 seule colonne / 1 ComboBox à 2 colonnes / 1 ListBox à deux colonnes / 2 ListBoxes à 1 colonne. Le choix est vaste... Mais en fonction de ce que tu désires faire après les avoir afficher, on pourrait opter pour une option plutôt qu'une aute.

Par exemple, que faire avec les données vides. Les afficher, les masquer ?

Bref, nous avons besoin d'en savoir plus pour te donner une réponse adaptée...

Dejas merci pour ta réponse

ma plage est modifiable dans les données contenues

afficher 1 ListBox à deux colonnes

et plutôt masquer les données vides

Re,

Essaie comme ça :

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Long 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable K (inrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)

Me.ListBox1.ColumnCount = 2 'de'finit le nombre de colonnes de la Listbox1
Set O = Worksheets("CAISSE") 'définit l'onglet O
TV = O.Range("G2:H" & Cells(Application.Rows.Count, "H").End(xlUp).Row) 'définit dynamiquement le tableau des valeur TV
K = 1 'initialise la variable 'initialise la variable K
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    If TV(I, 1) <> "" Then 'condition : si la donnée ligne I colonne 2 de TV n'est pas vide
        ReDim Preserve TL(1 To 2, 1 To K) 'redimensionne le tableau des lignes TL (2 lignes, K colonnes)
        TL(1, K) = TV(I, 1) 'récupere dans la ligne 1 de TL la donnée en colonne 1 de TV (= Tranposition)
        TL(2, K) = TV(I, 2) 'récupere dans la ligne 2 de TL la donnée en colonne 2 de TV (= Tranposition)
        K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes (TL)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
If K > 1 Then 'condition : si K est supérieure à 1
    Me.ListBox1.Column = TL 'alimente la listbox1 avec le tableau TL
End If 'fin de la condition
End Sub

Private Sub CommandButton1_Click() 'bouton "Sortir"
Unload Me 'vide et ferme l'UserForm
End Sub

Le fichier :

19eric-v01.xlsm (25.35 Ko)

Très cordialement merci

Ca fonctionne a merveille

Eric

Rechercher des sujets similaires à "coder userform"