binoute se lance sur vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

binoute

XLDnaute Occasionnel
Bonjour léa, robert et tant d'autres,
je me permet de créer un nouveau topic, car avec les essais d'insertions d'image sur l'autre, cela faisait brouillon !

Bon, plutot que de vouloir retravailler le fichier de base que j'avais soumis, je veut créer un userform (je pense) qui me permettrait de renseigner automatiquement des feuilles excel préformatées pour gerer ce que l'on appellera un dossier d'affaire.
ce dossier d'affaire contient plusieurs documents qui doivent etre imprimables et qui comportent des données communes (N° dossier, nom client, adresse, tph....) d'ou l'utilité d'un document unique de saisie.
- excel et vba permettent t'ils ce genre de fantaisies ?
- quelqu'un(e) à t'il sortie un tuto pour l'utilisation de vba (les bases pour créer) ?
ou
- il y à t'il une ame sur ce forum qui pourrait etre sensible à mon desespoir et qui serait pret à sacrifier un peut de son temps à ce probleme ?

Remerciements anticipés pour votre collaboration
 
Bonjour Binoute, le Forum

Je te conseille dans un premier temps de télécharger mes démos de la série 'Userform Rudiments Basics'...

Pour les trouver, tu dois aller dans la partie 'Archive' (ancien Forum XLD) et tu ustilises le moteur de recherche avec ces mots clefs plus mon pseudo '@+Thierry'

Tu devrais trouver déjà de quoi commencer avec les Userforms...

Bonne Journée et semaine à tous t toutes
@+Thierry
 
bonjour thierry,
désolé mais dans les archives, j'ai consulté tous tes messages et je n'ai pas trouver le topic en question
au niveau de la recherche j'ai fais : 'Userform Rudiments Basics'
en ayant coché sujet !
c'est bon ou il faut proceder autrement ?
a+
 
Re: Se lancer sur VBA/USF =>DEMOS Rudiments Basics

Bonjour à tous,
voila je me suis lancé et j'ai déja sortis un premier jet que je joins en annexe.
les premiers problemes qui se posent :
- je souhaite rentrer mes donnees dans mon userform et qu'elles soient mémorisées tant que je ne les modifies pas et surtout qu'elles restent visibles dans les zone de saisies meme apres une fermeture du classeur.
- je veux pouvoir imprimer mes differentes feuilles à partir de mon userform 'saisie' en preselectionnant la feuille par mes boutons d'option et clic sur impression apres selection.
- les données que je rentre sur mon userform seront ventilées sur plusieurs feuilles du classeur dans des cellules differentes, dois je faire une sub par feuille ou existe t'il une commande unique ou je puisse indiquer toutes les cellules à renseigner.

c'est déja pas mal pour commencer, mais je suis séduit par les possibilités de vbe

dans l'attente de vos commentaires avisés

merci d'avance [file name=saisieaffaire.zip size=26010]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/saisieaffaire.zip[/file]
 

Pièces jointes

Re: Se lancer sur VBA/USF =>DEMOS Rudiments Basics

Bonsoir Binoute, le Forum

Heuh oui oui, très zoli ton UserForm, mais pour ce qui est des codes, tu n'as pas vraiment approfondi...

Cet exemple reflète bien l'erreur courante commise par les débutants... Privilégier à tout prix le Design, avant même de ne savoir exploiter un UserForm tout simple... On ne parlera même pas du petit 'merci pour les liens' qui manque aussi dans ton post...

Et la suite tu pars sur des 'Je souhaite que', 'Je veux que'...

Que te dire ?

Je peux te mettre sur des pistes simples, déjà essaie de nommer tes Controls d'une manière rationnelle... Tes OptionButtons sont nommés sans respect d'aucune convention par exemple...



Pour les autres points :
je souhaite rentrer mes donnees dans mon userform et qu'elles soient mémorisées....
Essaie d'écrire ceci dans une feuille 'extra' que je nomme 'Temp'

à l'ouverture du UserForm :
Code:
Private Sub UserForm_Initialize()
    With Me
        .TextBox1 = Sheets('Temp').Range('A1')
        .TextBox2 = Sheets('Temp').Range('A2')
        'etc etc
    End With
End Sub

à la fermeture du UserForm :
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    With Sheets('Temp')
        .Range('A1') = Me.TextBox1
        .Range('A2') = Me.TextBox2
        'etc etc
    End With
End Sub



Pour :
je veux pouvoir imprimer mes differentes feuilles à partir de mon userform...
Déclare Public en Haut du Module du UserForm (hors de toute Sub ou Private Sub) une Variable WorkSheet :

Code:
Dim LaFeuille As Worksheet

Puis pour chacun de tes OptionButtons
Code:
Private Sub suiviaffaire_Click()
If Me.suiviaffaire = True Then LaFeuille = Sheets('SUIVI AFFAIRE')
End Sub

Private Sub ar_Click()
If Me.ar = True Then LaFeuille = Sheets('ARC')
End Sub
'etc etc pour les OptionButtons

Private Sub impression_Click()
If Not LaFeuille Is Nothing Then LaFeuille.PrintOut
End Sub



Pour :
dois je faire une sub par feuille ou existe t'il une commande unique
ou je puisse indiquer toutes les cellules à renseigner
Pour envoyer les données sur plusieurs feuilles simultanément, il faudrait savoir lesquelles, par exemple :
Tu dois recevoir tes données en feuilles 'FACT.1' et 'FACT.2', tu peux faire ceci :

Code:
Private Sub validation_Click()
Dim WS As Variant

    For Each WS In Array('FACT.1', 'FACT.2')
        Sheets(WS).Range('A1') = Me.TextBox2
    Next

End Sub


Voilà en espérant t'avoir un peu éclairé, mais dis toi bien que pour débuter, il faut toujours commencer humblement par des petits exercices tout simple, et que c'est petit à petit que tu découvriras le VBA, sans empressement mais avec beaucoup de patience et de nuits blanches, j'en sais quelque chose !

Bonne Fin de Journée
@+Thierry
 
Re: Se lancer sur VBA/USF =>DEMOS Rudiments Basics

bonsoir thierry,
je me confonds d'excuse vis à vis des points suivants :
- remerciements non dispensés pour les liens
- desirs mal exprimés par l'utilisation abusive de : je souhaite que, je veux que...

mais l'enthousiasme des debutants fait parfois oublier les formules de politesse les plus élementaires.

je te suis bien sur le principe de commencer petit pour attaquer plus grand, mais les necessités impératives de ce fichier me font prendre les choses à l'envers, j'ai malgré tout regardé tes exemples pour m'inspirer et il est clair que mes appellations sont loin d'etre academiques mais il m'avait semble plus facile de créer des mnemoniques que d'utiliser les appelations de base !

je vais tester tes recommandations et en esperant profiter de ton experience sur cet exercice difficile pour moi,

salutations
 
Re: Se lancer sur VBA/USF =>DEMOS Rudiments Basics

Bonjour @+thierry et le forum,
Je te remercit pour tes codes qui fonctionnent à merveille, mais (parce qu'il y a toujours un mais), j'ai un petit soucis avec l'impression :
le code suivant ne fonctionne pas, tout ça etant en tete de module userform

Dim LaFeuille As Worksheet

Private Sub suiviaffaire_Click()
If Me.suiviaffaire = True Then LaFeuille = Sheets('SUIVI AFFAIRE')
End Sub

Private Sub ar_Click()
If Me.ar = True Then LaFeuille = Sheets('ARC')
End Sub

Private Sub impression_Click()
If Not LaFeuille Is Nothing Then LaFeuille.PrintOut
End Sub

une erreur 91 monte 'variable objet ou variable de bloc with non definie'

cela sous entend t'il que 'lafeuille' n'est pas bien declarée ?

Si tu as quelques instants pour me brieffer, merci

[file name=saisieaffaire_20050301100920.zip size=28625]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/saisieaffaire_20050301100920.zip[/file]
 

Pièces jointes

Re: Se lancer sur VBA/USF =>DEMOS Rudiments Basics

Bonjour Binoute, le Forum

Tiens au fait en Tchat hier soir on m'a fait une ch'tite réflexion sur ton pseudo, mais bon vu que tu t'es déjà enregistré...

Bon sinon oui OUPS !!! j'ai écrit mon code sans faire de tests rééls...

Donc pour chacun de tes OptionButtons :

Code:
Dim LaFeuille As Worksheet

Private Sub suiviaffaire_Click()
If Me.suiviaffaire = True Then Set LaFeuille = Sheets('SUIVI AFFAIRE')
End Sub

Private Sub ar_Click()
If Me.ar = True Then Set LaFeuille = Sheets('ARC')
End Sub

'ETC pour TOUS les OptionButtons...

Puis ce code là reste inchangé :
Code:
Private Sub impression_Click()
If Not LaFeuille Is Nothing Then LaFeuille.PrintOut
End Sub

J'avais tout simplement zappé :
If Me.suiviaffaire = True Then Set LaFeuille = Sheets('SUIVI AFFAIRE')

Sorry ! 😉

Bonne Journée
@+Thierry
 
Re: Se lancer sur VBA/USF =>DEMOS Rudiments Basics

re- bonjour
Merci pour la modif, ca roule mieux comme ça !

Alors qu'est qu'il à mon pseudo, il appartient deja à quelqu'un ou tu as peur que je modifie une lettre ?
tu as réveillé ma curiosité !

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour