Créer une tableau dans boite de dialogue

Résolu
jeannicolas1 Messages postés 6 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 6 juin 2007 - 3 mai 2007 à 18:46
jeannicolas1 Messages postés 6 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 6 juin 2007 - 4 mai 2007 à 12:59
Bonjour à tous,

Je viens juste de m'inscrire sur ce site, et j'ai déjà une question? Je suis un novice en VBA mais bon il faut bien un jour commencer.
Je vais vous exposer mon problème:

   J'aimerais créer une boite de dialogue sous VBA dans laquelle il y aurais un tableau "dynamique".  Quant  j'utilise le mot "dynamique", j'entends: une plage de données variable. Je voudrais pouvoir, par l'intermédiaire de cette boite, pouvoir enter des valeurs, et les récopier sur une feuille1.

Merci d'avance à tous pour vos réponses.

6 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 mai 2007 à 18:56
Salut,

http://www.vbfrance.com/tutoriaux/DEBUTANTS-DECOUVRIR-ENVIRONNEMENT-VISUAL-BASIC-SOUS-MICROSOFT-EXCEL_646.aspx

Il faut que tu te sers des UserForms avec des textbox (et des Labels en face pour dire ce que tu veux récupérer comme infos)
Ensuite, tu places un bouton Valider, et lors du clique dessus, tu places les données de chaque TextBox dans les cellules qui vont bien.

Ex :
Sheets("Feuil2").Range("A1").Value = TextBox1.Text

Penses aussi à remplacer TextBox1 par des noms significatifs (ex : txtNom, txtPrenom)

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mai 2007 à 11:56
Pour ton tableau dynamique, il te suffit d'en placer 5x6, et si tu n'as besoins que des 5 premiers, tu rends la dernière ligne de textboxes invisibles.
Pis s'ils sont placé au fur et à mesure, tu peux jouer avec for each ctl in Me.Controls
(au pire, si t'en as d'autres rajoute leur un Tag)

Mettre une image dans un message, c'est à dire ? Par un MsgBox ?
Tu ne peux qu'afficher l'une des icones proposées (vbInformation, vbQuestion & vbCritical). Pour afficher une image, tu seras obligé de créer ton propre MsgBox avec un autre UserForm

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
jeannicolas1 Messages postés 6 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 6 juin 2007
4 mai 2007 à 08:05
Merci pour la réponse,

Mais comment on fais pour réaliser un tableau dynamique dans un UserForm?

Par exemple une je veux un tableau de 5*5, puis un autre jour 5*6

Merci d'avance à tous pour vos réponses

Une petite question comment fais t on pour mettre une image dans un message car je n'arrive pas ?encors merci
0
jeannicolas1 Messages postés 6 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 6 juin 2007
4 mai 2007 à 12:28
Merci,

Quant je parlais d'image, je voulais en placer une dans ce forum, pour mieux t’expliquer mon problème
Et encor merci pour ta réponse.
Pourrais tu me faire un exemple, car je débute en VBA et je t avoues je ne comprends pas tous ce que tu me dis ?


Merci encor par tes réponses.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mai 2007 à 12:45
Je fais vite car je me barre ;)
Pour les images, ok, mal compris, il faut l'héberger sur un serveur, style imagedream, ou hackus.

Pour tes textbox, places les tous et mets leurs la propriété Visible à False.
Ensuite regarde et lance le code (les 5 derniers ne doivent pas être visibles) :

Private Nb As Integer

Private Sub UserForm_Initialize()
    Dim i As Integer

Nb =  25
' a toi ici de récupérer le nb de textbox a afficher
' soit 5x5, soit 6x5

For i = 1 To Nb
' en partant du principe que les textbox sont nommés TextBoxN
' N etant un chiffre de 1 a 30
    Me.Controls("TextBox" & i).Visible = True
Next

End Sub

Private Sub cmdValider_Click()
    ' cmdValider c'est le nom du bouton Valider
    
For i = 1 To Nb
' admettons tu veuilles enregistrer les données de A2 à A26

    Cells(i + 1, 1).Value = Me.Controls("TextBox" & i).Text
    ' OU **
    Range("A" & i + 1).Value = Me.Controls("TextBox" & i).Text
Next

End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
jeannicolas1 Messages postés 6 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 6 juin 2007
4 mai 2007 à 12:59
Merci encor pour ta réponse

Je vais voir.
0
Rejoignez-nous