reafficher le formulaire de départ pour pouvoir modifier les données

toto3371

XLDnaute Nouveau
Bonjour,
Je pense que mon problème est proche du votre enfin si j'ai bien tout compris.

Je m'occupe d'une association et je veux simplifier la saisie des données administratives concernant chaque membre sur excel.

Pour cela j'ai créé différentes colonnes sous excel (Nom, Prénom, Date de naissance, téléphone, adresse, ...)

Afin de les remplir facilement, j'ai créé un formulaire avec VBA. Mon formulaire marche parfaitement.

Seulement je voudrais pouvoir faire l'inverse, c'est à dire que si je veux modifier une données concernant un membre il me faudrait que mon formulaire se réaffiche mais avec les données remplie pour ce membre et ainsi je n'ai plus qu'à modifier les données erronées.

Je ne sais pas si je suis clair.

Merci d'avance en tout cas de votre aide.
 

toto3371

XLDnaute Nouveau
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Bonjour,

J'utilise mon programme qui a été modifié par Hasco. Il marche bien mis à part ces petits détails.
La création d'une nouvelle ligne après modification au lieu d'écraser la ligne à modifier.
Et récupération des données issues d'une cellule pour les mettre dans plusisuers case du formulaire.
 

toto3371

XLDnaute Nouveau
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Pour le problème des multicases ce n'est pas grave je les ai supprimées en effet remplir en une seule case c'est plus rapide que de devoir passer d'une case à l'autre.
Donc on va dire qu'il ne me reste qu'un seule problème celui de la modif.
 

ChTi160

XLDnaute Barbatruc
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Re
arff je dois partir
mais donc , si j'ai bien compris tu as remplacé les multicases pour les Dates et numero de telephone et email
cela doit pouvoir simplifié ,ce qui gene un peu aussi c'est le fait que tu utilse la propriété Rowsource pour remplir tes objects (Combobox par exemple cela n'est pas très souple à l'usage)
je suis le fil
Bonne journée
 
G

Guest

Guest
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Bonjour toto, Job

Le document que je t'ai donné plus haut était une base de départ, c'est pour cela qu'il manque des choses.

Mieux vaut aller petit à petit.

Dans la pièce jointe tu verras que tu peux afficher toutes les informations d'une ligne et modifier celle-ci ou enregistrer une nouvelle. Je te rapelle que pendant l'affichage du userform tu n'es pas obligé de fermé ce dernier pour afficher une nouvelle ligne ou une ligne existant. Il te suffit de clique dans une ligne occupé ou non de la feuille de calcul.

Je plussoie(;)Pascal) à ce que dit Job(que je salue au passge) à propos des RowSource et de l'alimentation des contrôles, source d'erreurs et d' alourdissement de programation. Il ont étés conçu pour d'autre situations.

Je rajouterai qu'il vaut mieux Tester les valeurs des textBox sur leur évènement Exit (ou BeforeUpdate ou AfterUpdate) plutôt que l'évènement change qui est rappelé à chaque instant. Ce qui evite des erreurs en chaine et est plus facile à gérer.

C'est volontairement que je n'ai rien changé à la conception des saisies de téléphone.

Tout ceci n'a valeur que d'exemple, libre à toi de modifier ce que tu veux.
Si tu as d'autres questions, dis nous sur quoi tu travailles et quels sont les changements que tu as apportés que nous puissions nous y retrouvé. Joine un fichier.

Si tu rencontres le même problème que la première fois dans le chargement du userform, apporte la solution que tu as trouvé précédement. (Je suis curieux de savoir laquelle d'ailleurs. Comment cela ce fait-il que tu ne rencontres plus ce problème? Qu'as-tu modifié?)

A bientôt
 
Dernière modification par un modérateur:

toto3371

XLDnaute Nouveau
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Bonjour Hasco,
Es-tu sûr du fichier que tu m'as envoyé dans le dernier message?
Quand je sélectionne une cellule et que je fais affiché le formulaire celui ci est vide comme ci je rajouter un nouvel individu et non un modif
 
G

Guest

Guest
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Re,

Je viens de re-tester et de reloader le fichier dans mon post précédent.
Tu peux le re-téléchargé à partir de là.

Tout semble fonctionner chez moi.

Au fait, Pour l'adresse, ne s'achant pas comment tu construis et déconstruis tes 3 textBox la concernant, je ne fait qu'afficher le premier avec le contenu de la colonne G (Adresse)

A+
 
Dernière modification par un modérateur:

toto3371

XLDnaute Nouveau
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Merci beaucoup Hasco,
Ton aide met très precieuse.
j'aurai encore une autre question.
Comment faire en sorte que quand la personne a tapé les deux premiers chiffre de son numéro de téléphone le curseur passe directement à la case d'aprés sans avoir besoin de taper entrée. C'est du détail j'avoue mais ça simplifierait la saisie.
 
G

Guest

Guest
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Re,

Tout d'abord fixer la propriété MaxLengh de chaque textbox à 2.
Ensuite la façon la plus simple c'est de programmer chaque évènement Keyup de la manière suivante (exemple pour TextFixe1):

Code:
Private Sub TextFixe1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If Len(TextFixe1) = 2 Then TextFixe2.SetFocus
End Sub

Il y a une façon plus compliquée à mettre en oeuvre mais qui fait moins d'écriture avec les modules de classe mais peut-être est-ce pas le bon moment pour toi de rentrer là-dedans si tu ne connais pas trop VBA.

En prime: si tu veux que l'utilisateur ne puisse taper que des chiffres:

Code:
Private Sub TextFixe1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii =0
End Sub

A+
 
Dernière modification par un modérateur:

toto3371

XLDnaute Nouveau
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Merci beaucoup Hasco,
C'est génial ça marche comme je veux.
Ce petit fichier que je fais pour la gestion de l'asso est censé être utiliser par quelqu'un qui ne s'y connait pas en info. Donc la pour rentrer les données il n'aura aucun problème.
Je voudrais savoir s'il est possible de faire un deuxieme bouton sur la feuille excel qui permettrait de éditer directement les données sous forme de liste. Je m'explique.
Si la personne désir obtenir la liste téléphonique des membres, elle coche des cases associées à ce qu'elle veut dans sa liste. Pour le téléphone elle cocherait: nom, prénom, telephone fixe, telephone portable.
Meme principe quelque soit les données si elle veut les adresses ou les activités pratiquées.
Je ne sais pas si je suis très clair. Mais pense tu que c'est possible à réaliser afin de simplifier au maximum l'utilisation de ce fichier excel
 
G

Guest

Guest
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Bonjour toto, le forum

C'est faisable, mais cela va plutôt alourdir le truc et ne sera pas forcément plus pratique. Il vaut mieux, à ce moment là faire un Userform avec un contrôle Multipage par 'bloc d'information' avec hors multipage, le nom et prénom (en affichage)

1 Page avec nom, prénom(pour modification et ajout), sexe et date de naissance,
Peut-être avec un bouton 'Rechercher'
1 Page Coordonnée (Adresse, cp, ville)
1 Page Télephones et mail
1 Page Activités musicale
1 page avec remarques.

Peut-être les 2 premières ensembles à toi de choisir

J'ai peut-être mal compris. Tu voudrais que l'utilisateur puisse éditer des listes (sur feuille excel) c'est ça?
A+
 
Dernière modification par un modérateur:
G

Guest

Guest
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Re toto,

Non ce n'est pas cela. Un contrôle multipage est un contrôle qui présente les information dans un userform sur des onglets différent. comme lorsque tu fais Outils/options, la fenêtre des options qui s'ouvre présente les information sur un contrôle multipage.

Sinon, je t'ai fait un petit truc qui cache ou affiche les colonnes choisie ou les exporte sur une autre feuille.

A+
 

skoobi

XLDnaute Barbatruc
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Bonjour tout le monde,
Hello Ges :),

En prime: si tu veux que l'utilisateur ne puisse taper que des chiffres:

Code:
Private Sub TextFixe1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii =0
End Sub

A+

Où si on n'a la flème :D;) (private jocke) pour chercher le code ASCII des chiffres on peut aussi faire comme ça:

If Not Chr(KeyAscii) Like "#" Then KeyAscii = 0
ou comme ci:
If Not Chr(KeyAscii) Like "[0-9]" Then KeyAscii = 0

Bon après-midi.
 
G

Guest

Guest
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Hello Skoobi,

l'ami skoobi à dit:
If Not Chr(KeyAscii) Like "#" Then KeyAscii = 0

47 caractères à taper

moi même personnellement à dit:
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii =0

50 caractères à taper

re skoobi à dit:
If Not Chr(KeyAscii) Like "[0-9]" Then KeyAscii = 0

51 caractères à taper

Le gagnant est.....

L'ami Skoobi avec 47 caractères à taper:D.

A+++
 

ChTi160

XLDnaute Barbatruc
Re : reafficher le formulaire de départ pour pouvoir modifier les données

Salut toto3371
Bonjour Hasco,skoobi
Bonjour le Forum

ou alors
pour ce qui est des Dates
Code:
Private Sub DateAvalider_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("0123456789/", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
et il doit y en avoir d'autres Lol
Bonne fin de journée
Bon Week End
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 530
dernier inscrit
Chess01