crée une macro avec vba

leti66

XLDnaute Nouveau
Bonjour,

J espère que je vais reussir a vous expliquer ce que je voudrais faire^^
Dans un premier classeur j ai une feuille e devis et dans le deuxieme une bibli client.
Je voudrais quand je suis sur ma feuille de devisqu il y est un bouton qui quand je clique dessus il y est une fenetre qui s ouvre et où il s y trouverai nom,prenom,adresse,....... et que tout cela s'enregistre dans ma bibli automatiquement ainsi que sur ma feuille de devis
J'attend vos lumieres :)
Je vous remercie d'avance
 
Dernière édition:

leti66

XLDnaute Nouveau
Re : crée une macro avec vba

Bonjour,

J'essai de vous envoyer le modèle devis j'espère la useform que j'ai nommé CLIENTS et le tout sous un format compatible avec les votres

J'espère que je ne me suis pas trop trompé et que vus allez pouvoir comprendre quelque chose

Merci à vous! :)
 

Pièces jointes

  • modèle devis 2003.zip
    40.3 KB · Affichages: 30

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

Bonjour Leti66,

Non c'est parfait! Tu as tout mis! L'UserForm, les onglets avec les informations nécessaire, c'est parfait!

-> dans l'UserForm, il ne te reste plus qu'à rajouter un ou deux boutons (cf. dessin ci-joint dans la boite à outils).

Il faut créer un bouton "Valider la saisie" et un bouton "Annuler la saisie" (ce second bouton est facultatif).

En résumé : tu clic sur le symbole que j'ai entouré.
Sur la ligne "caption" dans les propriétés de ton bouton, tu écris le texte que tu veux voir apparaître sur ton bouton, puis tu peux également changer la couleur, la police, ...

Pourquoi as-tu mis une zone "liste des clients"? Pour que l'utilisateur voit la liste des clients déjà existant, évitant ainsi de créer un client en doublons?

A te lire

Cordialement
 

Pièces jointes

  • Etape3.jpg
    Etape3.jpg
    39.8 KB · Affichages: 38
  • Etape3.jpg
    Etape3.jpg
    39.8 KB · Affichages: 53
  • Etape3.jpg
    Etape3.jpg
    39.8 KB · Affichages: 49

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

Bonjour Leti66,

Petites astuces :
-> lorsque tu sélectionne ton UserForm, clic dans propriété sur "caption" et écris le titre de ton UserForm. Le texte que tu écriras sera sur la bandeau bleu de ton UserForm, donc visible par l'utilisateur! Tu peux par exemple écrire : "Saisie d'un nouveau client".

-> si mon hypothèse ci-dessus est juste : ta zone "LISTE CLIENTS" est une information! Alors que toutes les autres zones sont des zones à remplir?

Si oui, il est plus clair de choisir deux couleurs distinct! Une pour les zones où l'utilisateur ne doit rien faire, une autre couleur pour les zones de saisies.

Je te laisse voir ces points, pendant ce temps je bosse sur la macro de ton fichier.

A tout à l'heure
 

leti66

XLDnaute Nouveau
Re : crée une macro avec vba

Bonjour,

Ca y est j'ai rajouté les 2 boutons
En ce qui concene la liste client c'est pour voir les clients existats et pour m'éviter s'ils existent de les réecrire maintenant pour affecter l' Useform a mon bouton je suis dans l'impasse

Merci
 

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

Hello,

Pour ta liste : "Choix type clients", elle est écrit quelquepart sur ta feuille excel?

Sinon, peux-tu m'indiquer les différents types?

Avant d'affecter l'UserForm à ton bouton, il faut d'abord écrire le programme (la macro). Et pour ton cas, l'enregistreur de macro (très utile lorsqu'on débute et qu'on ne connait rien au VBA, ni à la programmation en général), ne sert malheureusement pas à grand chose! Il faut écrire entièrement la macro.

Donc comme tu ne sais pas faire, j'ai opté pour la solution : je t'écris la macro avec le maximum d'explication pour que tu puisse comprendre, et ensuite, tu pourras tout décortiquer, essayer, et poser des questions si mes explications ne sont pas assez fouillé!

Sinon ce serait vraiment très long! Ben oui... avant de pouvoir écrire une macro, il faut d'abord apprendre quelques bases (or ton exercice et un peu complexe pour apprendre le VBA en douceur) ;)

A tout à l'heure
 

leti66

XLDnaute Nouveau
Re : crée une macro avec vba

Coucou,

En ce qui concerne Choix type client nom il n'est pas inscrit sur mafeuille celui ci concerne "SARL" "particulier""EURL"
Tuas obté pour la bonne solutiion en me décorticant tout je préfère comprendre et savoir faire plutôt que de prendre tout fait car sur le forum il existe déjà des modèles de Useform dont je me suis inspiré mais je compte en créer d'autres
En tout cas je te remercie beaucoup de prendre du ttemps pur m'expliquer tout ça
 

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

Bonjour Letti66,

J'ai été un peu long, car une fois ton fichier fini, j'ai sauvegardé mon travail pour te l'envoyer, mais mon PC a buggé!

Alors comme tu ne connais pas grand chose au VBA, j'avais mis tout pleins d'explication!

Ayant dû tout refaire, j'ai été un peu plus concis! Ainsi, cela m'a évité peut-être, de t'expliquer des choses que tu connaissais déjà? Pour les autres points, si tu as un soucis, n'hésite pas, il y aura toujours quelqu'un pour te renseigner!

Pour information : dans le fichier tu as une macro dans "Module1", et 3 autres macros dans ton UserForm.

La macro "SaisirNouveauClient" présente dans "Module1" est celle qui est lié à ton bouton que tu as mis sur l'onglet "devis".

Les autres macros s'exécuteront automatiquement (plus de détail dans le code).

Pour voir les macros misent dans ton UserForm, il faut faire :
-> "ALT" + "F11", pour aller sur la fenêtre : "Microsoft Visual Basic..."
-> sélectionner ton UserForm (un seul clic gauche)
-> puis pour voir les macro, par exemple double cliquer sur le bouton "Validez la saisie".

Ayant passé énormément de temps sur ton fichier, j'ai eu la flemme de me relire pour corriger les fautes d'orthographes! Espérant que cela soit quand même compréhensible!

Evidement, les macros proposés sont basic! Elles font purement et simplement ce que tu nous a demandé!

Après on peut rajouter par exemple :
-> vérifier que l'utilisateur a bien renseigné TOUTES les zones demandés
-> vérifier la cohérence des données saisies. Par exemple pour les zones téléphones, vérifier qu'il a bien mis QUE des chiffres et qu'il ne manque aucun numéro!
-> ...

Bonne fin d'après midi
 

Pièces jointes

  • RasLeBol.zip
    46.7 KB · Affichages: 29

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

Hello,

leti66 à dit:
maintenant pour affecter l' Useform a mon bouton je suis dans l'impasse

Après avoir vu le fichier que je t'ai envoyé, et surtout les 4 macros! Tu comprendras qu'avant d'affecter l'UserForm à ton bouton, il restait encore un peu de travail à faire ;)

Mais c'est vrai...

Pour que ton UserForm s'ouvre, il n'y a besoin que de la macro suivante :
Code:
Sub SaisirNouveauClient()

    Application.ScreenUpdating = False
    
    CLIENTS.Show
    
    Application.ScreenUpdating = True

End Sub

Et encore, si l'on veut privilégier le nombre de ligne à la qualité, on peut écrire juste :
Code:
Sub SaisirNouveauClient()

    CLIENTS.Show

End Sub

Mais voilà... une fois ton UserForm ouvert, Excel c'est pas ce qu'il faut faire!
L'utilisateur pourra toujours remplir les cases, cliquer sur les boutons, excel ne ferra rien! (et évidement, la liste des clients déjà existant sera VIDE!!! Ainsi que la liste déroulante : type de clients.

Espérant que tout cela ne te fasse pas peur et que tu ferra comme prévu : créer tout plein d'autres UserForm!

Si cela peut te rassurer, dans le code que je t'ai donné, efface TOUS les commentaires que je t'ai mis, tu verras, le code est déjà tout de suite BEAUCOUP plus court :D

Bonne fin de WE
 

leti66

XLDnaute Nouveau
Re : crée une macro avec vba

Bonjour,

Merciiii beaucoup Excelent!!!!!!!
Je viens de le liree vais maintenant essayer de l'appliquer
Tu as été vraiment très sympa d'occuper une partie de ton dimanche pour t'occuper d'une débutante comme moi
 

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

Salut,

Je t'avouerais que lorsque mon PC a buggé, j'ai faillis tout laisser tomber et ne pas recommencer!

Mais bon, ce n'est pas du temps de perdu! Car lorsque tu maîtrisera les UserForm, tu pourras à ton tour aider un débutant! Qui lui même à son tour...

Sans oublier ceux qui se posant la même question que toi consulterons cette discussion et pourront par la suite eux aussi aider!

Donc même si j'ai passé plus d'une heure dessus, indirectement cela aidera pleins d'autres personnes!

D'autre part, aider des personnes qui comme toi retrousse les manches et mettent les mains dans le cambouis, ça fait toujours plaisir de les aider!

A+
 

Excel-lent

XLDnaute Barbatruc
Re : crée une macro avec vba

leti66 à dit:
Je ne trouve pas les autres macros

Lorsque tu regarde la macro écrite ci-dessus Sub SaisirNouveauClient(), tu vois sur la partie de gauche (la partie du haut), la liste de tes feuilles, en dessous la liste de tes UserForm, et en dessous la liste de tes modules.

Clique sur ton UserForm, il apparait dans la partie de droite. Tu double clic sur ton UserForm, n'importe où! Sur l'un des boutons (conseillé pour ce fichier), sur l'une de tes TextBox, sur l'une de ... bref n'importe où sur l'UserForm

Et là, tu verras les macros qui sont DANS ton UserForm.


leti66 à dit:
Et quand j appui sur le boutonil y a bien l useform qui apparait mais cela ne va pas dans la bibli client

En effet, la macro rempli ta bibliothèque client : sur l'onglet "client", colonne AR à ... mais n'y va pas!

Mais si tu veux qu'une fois l'UserForm rempli et validé, que l'utilisateur soit aiguillé sur ta bibli client, il te suffit d'écrire la ligne en bleu dans ta macro CommandButtonValiderSaisie (cf. ci-dessous, j'ai juste enlevé les commentaires et rajouter la ligne manquante en bleu) :

Code:
Private Sub CommandButtonValiderSaisie_Click()
[COLOR="Green"]' Macro enregistrée et commentée par Excel-lent
[/COLOR]
Dim NouvelleLigne As Long
Dim Colonne As Byte
Dim NumTextBox As Byte

With Sheets("clients")

    Colonne = 44
    NouvelleLigne = .Range("AS3").End(xlDown).Row + 1
    
    For NumTextBox = 1 To 9
       .Cells(NouvelleLigne, Colonne) = Controls("TextBox" & NumTextBox).Value
       Colonne = Colonne + 1
    Next NumTextBox
    
    .Cells(NouvelleLigne, 53) = ComboBoxChoixTypeClients.Value
End With

[COLOR="Blue"][I]    Sheets("clients).Range("AR3").select
[/I][/COLOR]    Unload CLIENTS

End Sub

Cela me fait penser que tu voulais que l'UserForm remplisse ta biblio Client (déjà fait), mais également ton devis?

Je te laisse essayer pour voir si tu as assimilé toutes les informations ci-dessus? Puis si tu as un souci, tu envoie ton fichier sur le forum ainsi que ta question?

Bonne fin d'après midi
 

leti66

XLDnaute Nouveau
Re : crée une macro avec vba

Coucou,
Je suis en train d'essayer de comprendre tout ça, j'ai trouvé tes macro lol
J'ai plus aucun classeur en onglet sur mon modèle lol
Quand j'aurais fini je t'envoi le fichier pour voir s'il y a des erreurs ou si j'ai été une bonne éléve :)
Merci beaucoup à toi !!!!
 

Discussions similaires

Statistiques des forums

Discussions
312 764
Messages
2 091 860
Membres
105 082
dernier inscrit
saragestion