Transformation programme excel en Visual basic

  • Initiateur de la discussion Initiateur de la discussion teamtat
  • Date de début Date de début

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 !

teamtat

XLDnaute Occasionnel
Bonjour,
Je suis actuellement en stage pour ma licence professionnelle,
mon tuteur ma donné un autre sujet en paralléle a réaliser en + de mon sujet de base, qui concerne la transformation d'un programme réalisé sous excel en visual basic. je ne savais même pas qu'on pouvait réaliser des programmes sous excel, il se compose de la feuille principal (masque de saisie) et quand on fait format - feuille - afficher on peut visualiser les différentes sous partie du programme.

etant débutant en VB je rame un peu et le programme est complexe, j'aimerai savoir si quelqu'un a deja réaliser quelque chose de semblable? et comment aborder le probléme ? merci
 
Re : Transformation programme excel en Visual basic

Bonjour à toi,

La programmation d'une macro Excel est en Visual Basic.
Passer de l'un à l'autre est donc très facile car il s'agit du même langage.
Un simple copier coller avec qq adapations suffirait.

En revanche, tu perds les fonctionnalités d'un tableur ce qui peut être assez hardu a transcrire sous VB (cela reviendrait à re-coder Excel 😀)
 
Re : Transformation programme excel en Visual basic

Enfete au lieu d'avoir ma page principal sous excel, j'aimerai qu'elle s'ouvre comme un programme classique et apré selon ce que l'on coche une page apparait avec différentes inscription
 
Re : Transformation programme excel en Visual basic

Si tu as Visual Basic, tu as 2 parties (de mémoire).
La partie design ou tu vas mettre tes boutons, ta feuille principale...
La partie code ou tu peux copier coller les lignes de codes d'Excel.
Encore faut-il que tu puisses les trouver 😉

Si tu ne savais qu'il y avait du VB derrière les macros Excel, ou que Excel avait une partie macro, cela risque d'être plus qu'un sujet facultatif 😛
 
Re : Transformation programme excel en Visual basic

MAJ_FORMULAIRE_IV
=ECRAN(FAUX)
=ERREUR(VRAI)
=POSER.VALEUR($C$5;LIRE.DOCUMENT(88)) TX_Asc_Controle_final_LB_v68.xls
*** Mot de passe 0178
*** Nom de la feuille Page de garde Page de garde
*** Nom de la feuille Page de garde modèle Page de garde modèle
*** Nom de la feuille Contrôles Les controles
*** Nom de la feuille Guide Guide
*** Nom de la feuille Dernière page Dernière page
*** Nom de la feuille récupération des saisies Saisie
*** Nom de la feuille Masque saisie Masque saisie
*** Nom de la feuille Base de contrôle Base de contrôle
*** Nom de la feuille Tableau base Tableau base
*** Nom de la feuille Temp Temp
*** Nom de la feuille Tables 82-212.312 Tables 82-212.312
=LIRE.DOCUMENT(2)
=POSER.VALEUR(C$19;DEREF(B18)) C:\Documents and Settings\Luc\Bureau
=PROTECTION.CLASSEUR(FAUX;VRAI;$C$6)
=AFFICHER.CLASSEUR($C$9)
=AFFICHER.CLASSEUR($C$12)
=AFFICHER.CLASSEUR($C$14)
=AFFICHER.CLASSEUR($C$15)
=AFFICHER.CLASSEUR($C$17)

Voila le debut de la page maccro (j'ai pas tous mis elle fait 500 lignes)
je peut pas convertir direct en mode graphique ?
 
Re : Transformation programme excel en Visual basic

Avant de convertir, il s'agirait d'abord :
* De comprendre ce que fait la macro sur Excel
* Comment elle fonctionne

Ce que tu as posté fait appel à des fonctions ECRAN, ERREUR, POSER_VALEUR qui doivent être définies autre part dans les modules de VB.

Il s'agirait donc de décortiquer la "boîte à outil" que la personne qui a créé la macro s'est composée avant d'attaquer ce que la macro réalise.

La transcription d'Excel à VB en terme de code relève du copier-coller les lignes de code.
Après il s'agit de "tranposer" les élements graphiques 😉
 
Re : Transformation programme excel en Visual basic

MAJ_FORMULAIRE_IV
=ECRAN(FAUX)
=ERREUR(VRAI)
=POSER.VALEUR($C$5;LIRE.DOCUMENT(88)) TX_Asc_Controle_final_LB_v68.xls
*** Mot de passe 0178
*** Nom de la feuille Page de garde Page de garde
*** Nom de la feuille Page de garde modèle Page de garde modèle
*** Nom de la feuille Contrôles Les controles
*** Nom de la feuille Guide Guide
*** Nom de la feuille Dernière page Dernière page
*** Nom de la feuille récupération des saisies Saisie
*** Nom de la feuille Masque saisie Masque saisie
*** Nom de la feuille Base de contrôle Base de contrôle
*** Nom de la feuille Tableau base Tableau base
*** Nom de la feuille Temp Temp
*** Nom de la feuille Tables 82-212.312 Tables 82-212.312
=LIRE.DOCUMENT(2)
=POSER.VALEUR(C$19;DEREF(B18)) C:\Documents and Settings\Luc\Bureau
=PROTECTION.CLASSEUR(FAUX;VRAI;$C$6)
=AFFICHER.CLASSEUR($C$9)
=AFFICHER.CLASSEUR($C$12)
=AFFICHER.CLASSEUR($C$14)
=AFFICHER.CLASSEUR($C$15)
=AFFICHER.CLASSEUR($C$17)





=ACTIVER($C$12)
=SELECTIONNER("L9C3")
=LIRE.CELLULE(5) VRAI
=POSER.VALEUR($C$33;DEREF(B33))
=ACTIVER($C$13)
=SI($C$33=FAUX)
=ALERTE("Remplissez tous les champs !";2)
=MASQUER.CLASSEUR($C$9)
=MASQUER.CLASSEUR($C$12)
=MASQUER.CLASSEUR($C$14)
=MASQUER.CLASSEUR($C$15)
=MASQUER.CLASSEUR($C$17)
=PROTECTION.CLASSEUR(VRAI;VRAI;$C$6)
=ARRETER(VRAI)
=FIN.SI()



=ACTIVER($C$12)
=SELECTIONNER("L15C4:L76C5")
=BASE.DE.DONNEES() Définition zone Base de données
=SELECTIONNER("L20C7:L80C8")
=EFFACER(3)

=EXTRACTION() Définition zone Extraction
=SELECTIONNER("L15C7:L16C8")
=CRITERES() Définition zone Critères
=SELECTIONNER("L16C8")
=FORMULE(">=1") Critère de recherche
=EXTRAIRE(VRAI) Extraction des différents paragraphes

=SELECTIONNER("L1C3")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$64;DEREF(B63)) Electrique Hydraulique ou électrique ?
=SI($C$64="Electrique";POSER.VALEUR($C$65;"E");POSER.VALEUR($C$65;"H")) E

=SELECTIONNER("L1C4")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$69;DEREF(B68)) Traction à tambour Tambour ou adhérence ?
=ACTIVER($C$13)

=MASQUER.CLASSEUR($C$9)
=MASQUER.CLASSEUR($C$12)
=MASQUER.CLASSEUR($C$14)
=MASQUER.CLASSEUR($C$15)
=MASQUER.CLASSEUR($C$17)
=PROTECTION.CLASSEUR(VRAI;VRAI;$C$6)

=RETOUR()

MAJ_FORMULAIRE
=MAJ_FORMULAIRE_IV()
=MESSAGE(VRAI;"Veuillez patienter un instant…")
=PROTECTION.CLASSEUR(FAUX;VRAI;$C$6)

=AFFICHER.CLASSEUR($C$9)
=AFFICHER.CLASSEUR($C$12)
=AFFICHER.CLASSEUR($C$14)
=AFFICHER.CLASSEUR($C$15)
=AFFICHER.CLASSEUR($C$17)

=ERREUR(FAUX)
=ACTIVER($C$16)
=SUPPRIMER.CLASSEUR($C$16)
=ERREUR(VRAI)

=COPIE.CLASSEUR("Feuille vide";$C$5; )
=NOMMER.CLASSEUR("Feuille vide (2)";$C$16)

=ACTIVER($C$9)
=SELECTIONNER("L1:L3500")
=EDITION.SUPPRIMER(3)

=POUR("num";21;90;1)
=ACTIVER($C$12)
=SELECTIONNER("L"&num&"C7")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$108;DEREF(B107)) 0

=ACTIVER($C$15)
=POUR("ligne";2;$C$276+1;1)
=SELECTIONNER("L"&ligne&"C1")
=SI(SELECTION()=$C$108) test numéro de norme
=SELECTIONNER("L"&ligne&"C10")
=SI(OU(SELECTION()=$C$65;SELECTION()="M")) pb : recupérer nb de lignes deja insérées

=SELECTIONNER("L"&ligne&"C11")
=POSER.VALEUR($C$118;DEREF(B117)) VRAI arborescence






=SELECTIONNER("L"&ligne&"C1:L"&ligne&"C11")
=COPIER()

=ACTIVER($C$16)
=SEL.DERNIERE.CELLULE()
=POSER.VALEUR($C$130;CELLULE("ligne";SELECTION())) 64
=SELECTIONNER("L"&$C$130+1&"C1")
=COLLER()
=ACTIVER($C$15)


=FIN.SI()
=FIN.SI()
=SUIVANT()
=SUIVANT()

=ACTIVER($C$16)
=SELECTIONNER("L2C1:L"&C130+1&"C9")
=COPIER()

=ACTIVER($C$9)
=SELECTIONNER("L1C1")
=COLLER()

=SELECTIONNER("L1C1:L"&C130+1&"C11") Boucle de suppression des lignes doublées
=TRIER(1;"C2";1;"C6";1;;;2;1😉
=POSER.VALEUR($C$151;0) 3
=POUR("Del";$C$130;2;-1)
=SELECTIONNER("L"&Del&"C2")
=POSER.VALEUR($C$154;SELECTION()) CUV
=SELECTIONNER("L"&Del-1&"C2")
=POSER.VALEUR($C$156;SELECTION()) CUV
=SELECTIONNER("L"&Del&"C6")
=POSER.VALEUR($C$158;SELECTION()) - Réserve (i), en manœuvre inspection, un fin de course inspection arrête le cabine à une distance d'au moins 1,50 m entre les parties les plus basses de la cabine et le fond de la cuvette ?
=SELECTIONNER("L"&Del-1&"C6")
=POSER.VALEUR($C$160;SELECTION()) - Réserve (i), en manœuvre inspection, un fin de course inspection arrête le cabine à une distance d'au moins 1,50 m entre les parties les plus basses de la cabine et le fond de la cuvette ?

=SI(ET($C$154=$C$156;$C$158=$C$160))
=SELECTIONNER("L"&Del)
=EDITION.SUPPRIMER(3)
=POSER.VALEUR($C$151;$C$151+1)
=FIN.SI()
=SUIVANT()
=POSER.VALEUR($C$168;$C$130-$C$151) 61

=SELECTIONNER("L1C1:L"&C168+1&"C11")
=TRIER(1;"C2";1;"C3";1;"C4";1;2;1😉

=SELECTIONNER("L1C6:L"&C$168+1&"C9")
=ZONE.IMPRESSION()
=SUPPRIMER.SAUT.DE.PAGE(SELECTION())
=ACTIVER($C$9)
=POSER.VALEUR($C$181;0)
=POSER.VALEUR($C$182;0)
=POSER.VALEUR($C$184;0) =POSER.VALEUR($C$181;$C$168)
=POSER.VALEUR($C$186;1)
=POUR("ligne";1;$C$168+1;1) 0 Valeur ligne dernier saut de page
=SELECTIONNER("L"&ligne&"C5") 55 Valeur ligne saut de page nécessaire
=SI(SELECTION()=1;POSER.VALEUR($C$182;ligne))
=POSER.VALEUR($C$184;$C$184+LIRE.CELLULE(17;SELECTION())) 554,25 Hauteur des lignes depuis le saut de page
=SELECTIONNER("L"&ligne&"C5")
=SI(ET(SELECTION()=1;$C$186<>ligne-1);POSER.VALEUR($C$186;ligne)😉 55 Valeur ligne dernier entete possible



=SI($C$184>700) Nb ligne pour saut de page
=POSER.VALEUR($C$186;$C$182)
=SELECTIONNER("L"&$C$186&"C6")
=SAUT.DE.PAGE()
=POSER.VALEUR($C$184;0)
=POUR("reprise";$C$186;ligne;1)
=SELECTIONNER("L"&reprise&"C1")
=POSER.VALEUR($C$184;$C$184+LIRE.CELLULE(17;SELECTION()))
=SUIVANT()
=FIN.SI()

=SUIVANT()
=MASQUER.CLASSEUR($C$9)
=MASQUER.CLASSEUR($C$12)
=MASQUER.CLASSEUR($C$14)
=MASQUER.CLASSEUR($C$15)
=MASQUER.CLASSEUR($C$17)
=MESSAGE(FAUX😉
=PROTECTION.CLASSEUR(VRAI;VRAI;$C$6)

=RETOUR()

MAJ_Tableau
=ECRAN(FAUX)
=ACTIVER($C$15)
=SUPPRIMER.CLASSEUR($C$15)
=ERREUR(VRAI)

=COPIE.CLASSEUR("Feuille vide";$C$5; )
=NOMMER.CLASSEUR("Feuille vide (2)";$C$15)
=AFFICHER.CLASSEUR($C$15)


=ACTIVER($C$14)
=SELECTIONNER("L2C7")
=FORMULE("=COLONNES(Base)")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$227;DEREF(B226)) 50 Nombre de colonnes dans la base
=SELECTIONNER("L1C7")
=FORMULE("=LIGNES(Base)")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$231;DEREF(B230)) 555 Nombre de ligne dans la base
*** Numéro de colonne de début de base 10
*** Numéro de ligne de début de base 5
=ACTIVER($C$14)


=POUR("colonne";$C$232;$C$232+$C$227;1)
=SELECTIONNER("L1C"&colonne)
=FORMULE("=nbval(L"&$C$233&"C"&colonne&":L"&$C$231+$C$233&"C"&colonne&")")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$241;DEREF(B240)) 0

=POUR("ligne";$C$233;$C$233+$C$231;1)

=SELECTIONNER("L"&ligne&"C"&colonne)
=SI(SELECTION()=1)

=SI($C$241>0)
=SELECTIONNER("L"&$C$233-1&"C"&colonne)
=COPIER()
=ACTIVER($C$15)
=SEL.DERNIERE.CELLULE()
=SELECTIONNER("L"&CELLULE("ligne";SELECTION())+1&"C1")
=COLLER()
=ACTIVER($C$14)
=SELECTIONNER("L1C"&colonne)
=FORMULE("="&SELECTION()-1)
=LIRE.CELLULE(5)
=POSER.VALEUR($C$241;DEREF(B258))
=FIN.SI()

=SELECTIONNER("L"&ligne&"C1:L"&ligne&"C9")
=COPIER()
=ACTIVER($C$15)
=SEL.DERNIERE.CELLULE()
=SELECTIONNER("L"&CELLULE("ligne";SELECTION())&"C2")
=COLLER()

=FIN.SI()
=ACTIVER($C$14)
=SUIVANT()
=SUIVANT()

=ACTIVER($C$15)
=SEL.DERNIERE.CELLULE()
=POSER.VALEUR($C$276;CELLULE("ligne";SELECTION())) 3083
=POUR("ligne";1;$C$276;1)
=SELECTIONNER("L"&ligne&"C11")
=FORMULE("=concatener(L"&ligne&"C3;L"&ligne&"C4)")
=SUIVANT()


=RETOUR()


Impression_INV
=PROTECTION.CLASSEUR(FAUX;VRAI;$C$6)
=ECRAN(FAUX)
=ERREUR(FAUX)

=AFFICHER.CLASSEUR($C$7)
=AFFICHER.CLASSEUR($C$8)
=SUPPRIMER.CLASSEUR($C$7)
=COPIE.CLASSEUR($C$8;$C$5)
=NOMMER.CLASSEUR("Page de garde modèle (2)";$C$7)


=MASQUER.CLASSEUR($C$8)
=ACTIVER($C$7)
=POUR("ligne";99;47;-1)
=SELECTIONNER("L"&ligne&"C1")
=SI(OU(SELECTION()="";ESTNA(SELECTION())))
=SELECTIONNER("L"&ligne)
=EDITION.SUPPRIMER(3)
=FIN.SI()
=SUIVANT()
=SUPPRIMER.SAUT.DE.PAGE()
=APERCU.IMPRESSION() =SI($C$403;APERCU.IMPRESSION();IMPRIMER())
=MASQUER.CLASSEUR($C$7)
=ACTIVER($C$13)
=PROTECTION.CLASSEUR(VRAI;VRAI;$C$6)
=RETOUR()


Impression
=Impression_INV()
=PROTECTION.CLASSEUR(FAUX;VRAI;$C$6)


=ACTIVER($C$12) IMPRESSION GUIDE
=SELECTIONNER("L1C3")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$64;DEREF(B322))
=SELECTIONNER("L1C4")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$69;DEREF(B325))
=SELECTIONNER("L16C11")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$329;DEREF(B328)) 0 Test si TI1.1
=SELECTIONNER("L17C11")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$332;DEREF(B331)) 0 Test si TI5.1
=SELECTIONNER("L18C11")
=LIRE.CELLULE(5)
=POSER.VALEUR($C$335;DEREF(B334)) 0 Test si TI5.2
=SELECTIONNER("L19C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C338;DEREF(B337)) 1 Test si TI11.2
=SELECTIONNER("L20C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C341;DEREF(B340)) 0 Test si TI1.2
=SELECTIONNER("L21C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C344;DEREF(B343)) 0 Test si TI2
=SELECTIONNER("L22C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C347;DEREF(B346)) 0 Test si TI3
=SELECTIONNER("L23C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C350;DEREF(B349)) 0 Test si TI8
=SELECTIONNER("L24C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C353;DEREF(B352)) 0 Test si TI12
=SELECTIONNER("L25C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C356;DEREF(B355)) 0 Test si TI 13.1
=SELECTIONNER("L26C11")
=LIRE.CELLULE(5)
=POSER.VALEUR(C359;DEREF(B358)) 0 Test si SAE13
=AFFICHER.CLASSEUR($C$10)
=ACTIVER($C$10)
=SI(ET(OU($C$329=1;$C$331=1;$C$335=1;$C$338=1);$C$64="Electrique";$C$69="Traction à adhérence");IMPRIMER(2;1;4;1;FAUX;VRAI;1)😉
=SI(ET(OU($C$329=1;$C$331=1;$C$335=1;$C$338=1);$C$64="Electrique";$C$69="Traction à tambour");IMPRIMER(2;1;2;1;FAUX;VRAI;1)😉
=SI(ET(OU($C$329=1;$C$331=1;$C$335=1;$C$338=1);$C$64="Electrique";$C$69="Traction à tambour");IMPRIMER(2;5;6;1;FAUX;VRAI;1)😉
=SI(ET(OU($C$329=1;$C$331=1;$C$335=1;$C$338=1);$C$64="Hydraulique");IMPRIMER(2;7;10;1;FAUX;VRAI;1)😉
=SI(ET(OU($C$329=1;$C$331=1;$C$335=1;$C$338=1);$C$64="Hydraulique";$C$69="Traction à tambour");IMPRIMER(2;5;6;1;FAUX;VRAI;1)😉

=SI(OU($C329;$C$338;$C$341;$C$344;$C$347;$C$350;$C$353;$C$356;$C$359);IMPRIMER(2;11;11;1;FAUX;VRAI;1)😉 FIN IMPRESSION GUIDE
=SI($C$344;IMPRIMER(2;12;12;1;FAUX;VRAI;1)😉
=SI(ET($C$344;$C$64="Hydraulique");IMPRIMER(2;12;12;1;FAUX;VRAI;1)😉
=MASQUER.CLASSEUR($C$10)
=AFFICHER.CLASSEUR($C$11)
=ACTIVER($C$11) IMPRESSION DERNIERE PAGE
=IMPRIMER(1;;;1;FAUX;VRAI;1)
=MASQUER.CLASSEUR($C$11)
=AFFICHER.CLASSEUR($C$9)
=ACTIVER($C$9) IMPRESSION CONTROLES
=IMPRIMER(1;;;1;FAUX;VRAI;1)
=MASQUER.CLASSEUR($C$9)
=ACTIVER($C$13)
=PROTECTION.CLASSEUR(VRAI;VRAI;$C$6)

=RETOUR()

Remise_à_zéro

=ACTIVER($C$12)
=SELECTIONNER("L2")
=EFFACER()
=ACTIVER($C$13)
=SELECTIONNER("L4C3;L4C5;L4C7;L13C3")
=EFFACER()
=SELECTIONNER("L4C3")




=RETOUR()


Aperçu

=POSER.VALEUR($C$403;VRAI) FAUX
=Impression()
=POSER.VALEUR($C$403;FAUX)
=RETOUR()

Auto_ouvrir

=Menu_Montage()
=ACTIVER($C$12) Effacement données précédentes
=SELECTIONNER("L2C1:L2C72")
=EFFACER(3)
=ACTIVER($C$13)


=SELECTIONNER("L4C5")
=EFFACER(3)
=SELECTIONNER("L4C3")
=EFFACER(3)
=RETOUR()


Auto_fermer

=Menu_Démontage()
=FICHIER.FERMER(FAUX)
=RETOUR()


Menu_Montage

=LIRE.BARRE()
=POSER.VALEUR(C$434;DEREF(B433)) 10
=POSER.NOM("Barrebase";DEREF(B433))
=SI(Barrebase<>10;RETOUR())
=ERREUR(FAUX)
=POUR("Boucle";9;15)
=SUPPRIMER.MENU(Barrebase;9)
=SUIVANT()
=ERREUR(VRAI)
=AJOUTER.MENU(Barrebase;Menu_THYSSEN)
=AFFICHER.BARRE(Barrebase)

=RETOUR()



Menu_Démontage

=SUPPRIMER.MENU(Barrebase;9)
=AFFICHER.BARRE(Barrebase)

=RETOUR()


Nom du menu Nom de la commande associée Raccourci
&*Contrôle Modern
&1 Valider le formulaire CT Macros!MAJ_FORMULAIRE
&2 Aperçu avant impression Macros!Aperçu
&3 Imprimer CT Macros!Impression
&4 Valider le formulaire IV Macros!MAJ_FORMULAIRE_IV
&5 Imprimer IV Macros!Impression_INV
&6 Remise à zéro Macros!Remise_à_zéro


-
Démonter ce menu Macros!menu_Démontage







=PAS.A.PAS()
=ARRETER()

voila ma page complete maccro
si quelqu'un pouvait m'aider j'en serais trés reconnaissant
 
- 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