Créer une tableau dans boite de dialogue

[Résolu]
Signaler
Messages postés
6
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
6 juin 2007
-
Messages postés
6
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
6 juin 2007
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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~
  
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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~
  
Messages postés
6
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
6 juin 2007

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
Messages postés
6
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
6 juin 2007

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" /??>


 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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~
  
Messages postés
6
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
6 juin 2007

Merci encor pour ta réponse

Je vais voir.