Créer une grille en VBA semblable à celle d'Excel
Hors lignePapy50 Le 05/04/2008 à 14:40 Profil de Papy50 Configuration de Papy50

Bonjour aux amateurs mordus de VBA,
Je souhaite créer une grille sur une UserForm semblable à une Feuil d'Excel pour saisir des données selon 15 colonnes et 33 lignes; chaque cellule étant renseignée par l'utilisateur.
Un code exploitera ensuite l'ensemble des données et les sauvegardera dans un fichier.text.
Je ne comprends rien à DBGrid
Qui peut m'aider ?
Merci
PaPy50
--
Quand la mouette a pieds il est temps de virer
Hors ligneWilder Le 05/04/2008 à 17:42 Profil de Wilder Configuration de Wilder

Viconaute Modérateur
Bonjour Papy50,

Pour t'aider, j'aurais besoins de plus d'informations.

P.-S. Envoie-moi ton fichier Excel pour que je regarde à quoi ça ressemble.

--


Hors lignePapy50 Le 07/04/2008 à 15:24 Profil de Papy50 Configuration de Papy50

Bonjour Wilder,
Merci à toi; Je réponds à ta question en décrivant ma grille car je ne sais pas comment te la transmettre !

Je renseigne cette Grille de 33 lignes par 15 colonnes par les données suivantes selon deux origines, en automatique(Auto) ou saisi par l'utilisateur (SpU)

1- Les 33 Lgn de la grille sont attribuées de la manière suivante:
1ère Lgn,les Titres de la grille sur 15 Col,
de la 2ème à la 32ème Lgn, correspondent au maximum au 31 jours d'un mois
et la 33 ème Lgn est destinée à être renseignée à partir des informations des 15 Col.

2- Les 15 Col de la grille sont attribuées aux données de la façon suivante:
Col 1:
Cells(1,1)=Année (SpU) et,
pour 2>= Lgn >=31 le nom des Jours de la semaine (en texte de 2 caractères; ex.:Lu,Ma,Me, ...) en Auto
Col 2:
Cells(1,2)=Titre(Jour du Mois) (Auto) et,
pour 2>= Lgn >=31 le numéro des jours du mois (en numérique) et Auto
Col 3 à 13:
cells(Lgn,Col)= valeurs singles SpU: 0.0 <= valeur <= 999.9
Col 14
Pour chaque Lgn de 2 à 32, somme des valeurs des Col3 à Col13 (Auto)
Col 15
Pour chaque Lgn de 2 à 32, nombre de valeurs non nulles des colonnes Col3 à Col13 (Auto)
3-Dernière Lgn (=33)
Col 1: le mois numérique (2 carractères) SpU
Col 2: le nombre de jours du mois considéré (Auot)
Col 3 à Col 14: la somme des valeurs de Lgn=2 à Lgn=32 en single (Auto)
Col 15 la sommes du nombre des valeurs(Auto)
Voilà une description qui me parrait être assez explicite; mais je reste bien sûr à te lire et à t'apporter d'autres précisions si nécesaires !
Merci de l'intérêt porté à mon problème.
PaPy50

"Quand la mouette a pied, il est temps de virer !"


--
Quand la mouette a pieds il est temps de virer
Hors ligneLebabs Le 08/04/2008 à 14:15 Profil de Lebabs Configuration de Lebabs

Salut Papy50 (De la part d'un autre papy)

Afin d'être certain d'avoir bien saisi ton problème, j'ai élaboré ci-joint et avec excel une grille qui devrait ressembler à ce que seraient tes relevés du mois d'avril 2008. Les couleurs correspondent aux saisies manuelles ou automatiques.
Examine le bien et dis moi si ça correspond à ce que tu voudrais.
Question: Pourquoi tiens-tu à la réaliser avec UserForm, au détriment d'excel et d'une petite macro de saisie?
@+


--
D'une étincelle peut jaillir la lumière.
Hors lignePapy50 Le 09/04/2008 à 02:28 Profil de Papy50 Configuration de Papy50

Bonjour mon cher LeBabs,
    Ta grille est pile poile celle que je souhaite gérer mais en Visual Basic de façon à rendre le programme de saisie indépendant d'Excel; de plus le code serait compilable (?).
    Actuellement ma grille est sur une feuil Excel sur laquelle j'ai disposé un certain nombres de boutons permettant d'acquérir des informations d'identification relatives à la grille. L'inconvénient de cette feuille réside par le fait qu'elle est "fragile", par exemple, à des coups de souris malheureux de la part de l'utilisateur. Ainsi avec une UserForm, lorsque celle-ci est activée, les différents objets sont figés, donc insensibles aux défauts de manipulation. Seulement voilà, je ne sais pas tracer,écrie, desiner cette fameuse grille que tu as parfaitement reproduite ( on peut évoquer et parler d'un clonage réussi !)
    Merci par conséquent de m'aider à atteindre mon objectif.
Par ailleurs comment as-tu fait pour créer ta grille et réussir à la joindre à ta réponse... Bravo

A te lire... avec plaisir

PaPy50
--
Quand la mouette a pieds il est temps de virer
Hors ligneLebabs Le 09/04/2008 à 14:38 Profil de Lebabs Configuration de Lebabs

Salut Papy,
Je suis content de constater que j'ai pigé du premier coup ce que tu veux faire, et surtout pourquoi tu veux le faire. Cette fragilité apparente de la grille te pose problème.
Seulement voilà, si ce travail n'est pas impossible en UserForm, il risque d'être assez long et surtout extrèmement lourd.
Alors, je te propose la chose suivante:
1 On garde la grille Excel, avec toutes les formules qu'elle contient ou en les remplaçant  par une macro,  mais on la protège, de façon à ce qu'aucune saisie manuelle ne soit possible. (C'est très simple).
2 On crée une petite grille UserForm qui servira d'intermédiaire pour saisir dans la grille Excel.
3 On crée une macro qui assurera la liaison entre les deux.
Qu'en penses-tu?

Question: A quelle fréquence saisis-tu ta grille? Chaque jour, semaine, mois?

Pour la question subsidiaire, concernant l'édition d'un document dans un topic, je te propose la chose suivante:
Dans le haut à gauche de la page d'accueil de VBA, tu as une fenêtre appelée: "Recherche sur Vulgarisation Informatique.com"
Dans cette fenêtre, tu tapes" Réaliser et héberger une capture d'écran" et l'ami Anthony t'expliquera tout ce qu'il te faut pour arriver à tes fins.
@+
--
D'une étincelle peut jaillir la lumière.
Hors lignePapy50 Le 09/04/2008 à 23:57 Profil de Papy50 Configuration de Papy50

Bonsoir "papy" Lebabs,
   Merci encore de ces éléments de réponse interressants.
   Réponse à ta question: la saisie des informations est réalisée mensuellement.
   Pour avancer dans mon projet et compte tenu des critères que je m'impose (mon cahier des charges) j'ai entrepris la solution UserForm en VBA.
   Afin de limiter le nombre de "cellules" j'ai décidé sur l'UF, de créer une  ligne unique correspondant à la saisie d'une seule journée. Cette ligne est composée de "TextBox" pour les saisies et de "Label" pour l'affichage des totaux des différentes sommations. Voilà l'UF est préparée; il me reste à écrire les différentes macros associées. Un CommandButton validera la saisie des données d'une ligne. Celles-ci seront insérées ligne après ligne dans un tableau. En fin de saisie des données mensuelles, ce tableau sera sauvegardé dans un dossier mensuel au format text.
  A terme je souhaite passer en VB pour que le code puisse être facilement portable sans nécessiter Excel. Au début de ma première demande d'aide je souhaitais découvrir l'utilisation pratique de la DbGrid de VB: je continue à lancer des HELP à ce sujet. Merci d'avance
  "y'a pu k"
  Je te remercie encore, Lebabs, pour tes propositions et sujétions, mais je vais, à présent, limiter le plus possible les interactions avec Excel (bien qu'il reste encore le support de cette programmation).
  Dans un précédent message tu écrivais être un passionné et bien ... moi itou !
Bye
PaPy50
--
Quand la mouette a pieds il est temps de virer
Hors ligneLebabs Le 10/04/2008 à 11:17 Profil de Lebabs Configuration de Lebabs

Salut Papy,

Papy50 a écrit :
Afin de limiter le nombre de "cellules" j'ai décidé sur l'UF, de créer une  ligne unique correspondant à la saisie d'une seule journée. Cette ligne est composée de "TextBox" pour les saisies et de "Label" pour l'affichage des totaux des différentes sommations. Voilà l'UF est préparée; il me reste à écrire les différentes macros associées. Un CommandButton validera la saisie des données d'une ligne. Celles-ci seront insérées ligne après ligne dans un tableau. En fin de saisie des données mensuelles, ce tableau sera sauvegardé dans un dossier mensuel au format text.


Jusque là, je suis parfaitement d'accord avec toi. Malheureusement, avant de te lire, je ne connaissais même pas l'existence de DbGrid.
Je ne peux donc rien pour toi, mais au moins, j'aurai appris quelque chose.
@+ et bon courage pour la suite de ton programme.
--
D'une étincelle peut jaillir la lumière.
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels