saisie de donnees avec une boite de dialogue sous excel

djnimo

XLDnaute Nouveau
Bonjour, J'utilise un fichier Excel 2000 comme une base de donnees pour gestion de stock, Chaque Colonne contient differentes infos pour un materiel, J'utilise une nouvelle ligne pour chaque materiel que je recois,
J'aimerai avoir un bouton sur cette feuille excel qui en cliquant dessus, ouvre une boite de dialogue pour entrer et valider chaque information pas a pas pour le nouveau materiel recu dans le stock.
Ca semble simple comme ca, mais j'ai plusieurs choses a prendre en consideration (si realisable):

1- la saisie doit etre simple d'utilisation avec une boite ki pop up posant la question pour chaque titre de colonnne par exemple:
"CLIENT??" L'utilisateur entre sa reponse valide et avec entree, "REF CLIENT? " L'utilisateur entre sa reponse valide et avec entree,etc......
La question etant bien sur le titre de chaque colonne ou les informations doivent etre saisies.
2- J'ai des donnees dans plus de 20 Colonnes pour chaque materiel mais seul les 10 premieres vont contenir des infos sur la reception, si quelqu'un peut me montrer le principe pour 2 ou 3 colonnes, je devrais facilement adapter pour plus de colonnes... non?
3- Enfin, et pas le plus simple pour moi, la sixieme colonne est nommee date de reception, est-il possible ke la macro entre la date dans la colonne du jour automatiquement dans cette colonne sans question ni validation.


Merci de votre aide!!!! :)
 

jeanpierre

Nous a quitté
Repose en paix
Re : saisie de donnees avec une boite de dialogue sous excel

Bonsoir djnimo, re tous,

Peut-être plus simple qu'une macro et une USF( quand on peut se l'éviter), dans Données/Grille, pour peu que toutes tes colonnes aient des titres.....

Tu ajoutes à volonté, tu peux revoir, vérifier, annuler (supprimer) au besoin....

Sans doute plus simple, et de beaucoup, qu'une USF qu'il faut fabriquer et surtout programmer. Pas bien compliquée, certes, pour du rajout....., un peu plus difficile pour revoir les entrées, par exemple et beaucoup plus compliqué pour des suppressions....

Adepte des choses simples lorsqu'elles existent....

Je sais que cela ne répond pas à ta question..... mais comme tu ne nous a rien préparé.... avec rien, il reste tout de même excel qui a tout, ou presque, prévu..

Le principe, c'est que si tu as un souci, tu aura une réponse, mais s'il faut tout fabriquer, c'est une autre histoire.

Bonne soirée, et regardes tout de même Données/Grille, intéressant...

Jean-Pierre

Edit : on doit pouvoir lui attribuer un bouton pour la faire apparaître... Pratique...
 
Dernière édition:

djnimo

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Bonsoir Jean Pierre, merci de ta reponse.
Donnees/grille n'est pas ce que je recherche, mon but est vraiment une simple interface utilisateur destinee aux personnes qui n'utilisent pas beaucoup excel... donc je pense toujours que la maco sera le mieux,
En effet, je n'ai rien commence car je n'ai jamais rien programme moi meme. Je comprends comment ca marche quand je vois des exemples, mais je ne sais rien construire (malheureusement!) enfin voila... je n'exige rien urgemment comme j'ai deja vu faire sur ce forum, et je remerci d'avance si quelqu'un peut prendre de son temps pour m'expliquer comment programmer tout ca!

Merci,
bonne soiree.
 

jeanpierre

Nous a quitté
Repose en paix
Re : saisie de donnees avec une boite de dialogue sous excel

Re,

Je comprends bien, mais pour appeler une USF, il va falloir un bouton sur lequel il faudra cliquer..... La grille d'excel en est une et si on lui attribue un bouton, c'est du pareil au même....

Je pense même qu'il n'y a pas plus simple..... (c'est une macro, sans macro apparente)

Sinon, pour commencer, tu vas sous VBE (soit par Outils/Macro/Visual Basic Editeur ou bien plus rapide Alt F11), Affichage/Explorateur de projet, et aussi Fenêtre Propriétés... Ensuite Insertion Userform et là tu tentes de composer.......

Voir tous les menus, ce qu'ils proposent.... faire des essais

Et aussi, ouvrir des fichiers, comme il semble que tu l'ais fait, être curieux.... et là, poser, une à une tes questions....

Ce que l'on pourrait fabriquer ne te conviendra pas, nous n'avons pas la même idée que toi, pas le même souci.... et de plus, c'est tout de même du boulot...

Mettre les mains dans la farine ou dans le camboui, selon....

Mais pour finir, tu n'auras pas plus simple interface que celle proposée.... pour répondre sur tes termes.

Maintenant, à chaque fois que je pourrais répondre, je le ferais bien sûr.
 

jeanpierre

Nous a quitté
Repose en paix
Re : saisie de donnees avec une boite de dialogue sous excel

Re,

Déposes nous un petit fichier exemple (ZIPPE, sinon je n'ouvre pas, avec windows, c'est facile, clic droit et Envoyer vers/Dossier compressé), pas un exemple n'importe comment, mais celui représentant ton total souci.... Toutes tes colonnes, leur titre, leur disposition.... précises, car VBA, c'est souvent du dur, et si l'on change c'est re du boulot....

En fonction de mon temps, je verrai si je peux t'aider..... peut pas mieux dire pour le moment.
 

djnimo

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Merci encore de ton aide JP et de ton temps, je suis consient que cela va en prendre pas mal de temps, je me donne moi meme beaucoup de temps pour faire evoluer mon classeur excel... J'apprends et test tous les jours! specialement grace a ce forum plein d'informations, bien sur si kelkun m'ecrit le programme je serai tres reconnaissant mais si kelkun me montre le chemin et la voie a suivre j'apprecerai tout autant et je serai partant pour devopper les idees/exemples uime sont donnes!!!
Voici la feuille de base concernee par ce que je veux faire. J'ai vide les donnees mais ca te donnera une bonne idee de ce avec koi je travaille.

Merci.
 

Pièces jointes

  • Exemple.zip
    17.6 KB · Affichages: 796
  • Exemple.zip
    17.6 KB · Affichages: 838
  • Exemple.zip
    17.6 KB · Affichages: 842

jeanpierre

Nous a quitté
Repose en paix
Re : saisie de donnees avec une boite de dialogue sous excel

Re,

Ho, là, tu es sous 2007.... connais pas, redépose un fichier (toujours zippé) mais enregistré sous 2000-2003, parce que là.... pour moi c'est du chinois....

Maintenant, sans certitude de ce qui pourrait être fait avec ma version soit assimilable à la tienne....

Bonne nuit.

Jean-Pierre

Edit : Rappel, pour toi et pour tous, toujours préciser sa version d'excel, cela évite, des fois, de trouner en rond. Allez bonne nuit cette fois.
 
Dernière édition:

djnimo

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Oui pardon, J'utilise 2007 a mon domicile, mais j'enregistre toujours en 97-2003 pour l'utiliser au boulot avec Office 2000... Je sais pas pourquoi J'ai oublie ce coup ci, desole!! ;-) voici le fichier modifie...

Cordialement,

bonne nuit
 

Pièces jointes

  • Exemple9703.zip
    7.7 KB · Affichages: 515

matthieu33

XLDnaute Occasionnel
Re : saisie de donnees avec une boite de dialogue sous excel

Bonsoir Djnimo, Jeanpierre et le forum,

Voici une solution.
J'ai rajouté un bouton "Réception".
Tu regardes ce que j'ai fait et si besoin, je te donne des explications.
 

Pièces jointes

  • Exemple9703_v1.zip
    15.6 KB · Affichages: 1 226

djnimo

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Bonsoir Matthieu,

Impressionant, si courte macro et ca marche nickel!! ;-) une petite question, comment marche cette commande pour la derniere ligne

lgDerLig = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1

pour le reste je crois ke J'ai pige, ca parait si simple quand c'est ecris :) mais devant une feuille blanche c'est autre chose :confused:

Un enorme merci a toi, a Jean Pierre et a ce Forum!!!!
 
Dernière édition:

matthieu33

XLDnaute Occasionnel
Re : saisie de donnees avec une boite de dialogue sous excel

Bonsoir Djnimo,

Explication de :
Code:
lgDerLig = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1

Récupération de la dernière ligne vide en colonne A :
Cells.Rows.Count = Nombre de lignes possibles dans la feuille. Ce nombre est fonction de la version d'Excel.
Range("A" & Cells.Rows.Count).End(xlUp).Row = Se positionner à la dernière ligne possible en colonne A, remonter jusqu'à la ligne dont le contenu est renseigné.
 

dufagri

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Bonjour,
Votre méthode m'apparait très intéressante, et j'ai essayer de l'adapté pour ajouter des données, mais en colonne. Hélàs, je dois me résoudre à accepter d'être vraiment nul en macro ! J'arrive bien à activer la saisie de ligne en ligne, mais les données s'inscrivent toujours dans la ligne "o" et je ne trouve pas comment dire à la macro de n'aller qu'à la dernière colonne vide...
 

matthieu33

XLDnaute Occasionnel
Re : saisie de donnees avec une boite de dialogue sous excel

Bonjour dufagri,

Voici une solution à adapter à ton cas :
lgDerCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column + 1

En partant de la dernière colonne possible dans Excel "Cells.Columns.Count", en ligne 1, trouver sur la gauche "End(xlToLeft)" la dernière colonne renseignée.

Dans mon cas, je prends la ligne 1.
Tu remplaces la ligne 1 par la ligne de ton cas.
 

dufagri

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Bonjour,
Je suis décidément trop nul. Ce matin, j'avais donc réussi à transformer en ajout de ligne, et maintenant que tu me donnes la solution, j'ai tout qui plante avec une erreur 400 et je ne sais pas d'où ça vient.
Alors voilà le script

Dim lgCol As Long
Dim lgDerLig As Long
Dim strSaisie As String

' Dernière colonne
llgDerCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column + 1

' Boucle de la colonne A à D
For lgDerLig = 1 To 4


strSaisie = InputBox(Cells(1, lgDerLig) & "?", "Saisie")
' Si saisie effectuée
If strSaisie <> "" Then


Cells(lgCol, lgDerLig).Value = strSaisie
End If

Next lgDerLig
End Sub
 

dufagri

XLDnaute Nouveau
Re : saisie de donnees avec une boite de dialogue sous excel

Alors, après mainte bidouille, je n'ai plus de bug, mais je n'arrive pas, soit à faire descendre ce que je met dans la fenêtre de dialogue (tout s'inscrit dans la même case), ou alors, ca ne s'affiche pas du tout (l'exemple ci-dessous).
Et si j'essai de remettre des écritures qui me semble être celle qui indique de descendre de cellule ("Cells(lgCol, lgDerLig).Value = strSaisie" dans la fin de la macro), ça plante.

Dim lgCol As Long
Dim lgDerLig As Long
Dim strSaisie As String

' Dernière colonne
lgDercol = Cells("1", Cells.Columns.Count).End(xlToRight).Column + 1

' Boucle de la ligne 1 à 4
For lgCol = 1 To 4


strSaisie = InputBox(Cells(lgCol, 1) & "?", "Saisie")


Next lgCol
End Sub

Merci
 

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG