seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008
-
16 nov. 2008 à 12:41
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
25 nov. 2008 à 22:18
Bonjour, j'ai appris quelques bases en VBA et j'arrive à créer quelques macros assez simples sur excel 2000. Mais j'aimerais pouvoir créer un programme indépendant d'excel, si je ne me trompe pas il faut programmer en vb6. Est - ce que ce language est (très) différent de vba et il doit surement falloir un logiciel pour programmer en vb6, lequel ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 16 nov. 2008 à 13:09
salut,
le VB6 est très proche du VBA en effet.
pour programmer en VB6, il faut MS Visual Basic ou MS Visual Studio 6.0, qui n'est malheureusement plus en vente "neuf"
il faut donc chiner les occasions sur la toile, ou passer à une version plus récente comme Visual Studio Express 2008 (VB.NET 2008) qui lui est gratuit, mais dont la syntaxe s'éloigne tout de même en VBA
Q : [../doc/faq.aspx#vb_lastide Où trouver la dernière version gratuite de l'IDE (Integrated Development Environment) pour développer en Visual Basic]
NB
: en VB6 ou VB.NET, l'exe sera autonome après avoir fait un package (setup).
néanmoins si le but est la manipulation de classeur, excel devra tout de même être installé sur le/les postes client.
on ne peut donc pas vraiment parler de "
programme indépendant d'excel
"
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 nov. 2008 à 13:17
VBA est une version modifiée et adaptée de VB6 pour les applications MSOffice.
VBA et VB6 sont très proche (le code version de VBA étant VB6.3).
Pour programmer en VB6 il faut effectivement un programme qui s'appelle VB6 qui fait partie du pack Visual Studio 6.
Malheureusement, ce pack n'est plus vendu depuis 2003. Tu peux encore le trouver avec beaucoup de chance, d'occasion, mais ça devient extrement rare (ceux qui l'ont le gardent jalousement)
Désormais il est remplacer par les versions .Net (VB.Net 2003 au départ, VB2005 ensuite et maintenant VB2008)
Si la syntaxe reste du basic, le langage a énormément changé, il est à considéré plus comme un nouveau langage que une évolution de VB6). Il te faudra un certain temps d'adaptation.
Avantage, tu eux trouver à télécharger sur le site de Microsoft, les versions Express (VB2008 Express) qui sont gratuite. Elles sont un peu limitée par rapport aux version completes. Mais ces limitations ne concernent que des points vraiment particulier et ne te concernera probablement pas dans 99.99% des projets que tu pourra faire au début.
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 16 nov. 2008 à 14:18
Merci beaucoup pour vos deux réponses.
J'avais déjà télécharger auparavant Visual Studio 2008 et j'avais remarquer des différences de syntaxe mais bon je pense que j'arriverai à me débrouiller même si ça me prend un peu de temps, ce n'est pas très grave ... Sauriez vous par hasard où je peux trouver les différences des languages ?
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 20 nov. 2008 à 20:09
Alors j'ai commencé un petit programme sur visual studio 2008 (en version express).
Le principe est simple: il y a un useform que la personne doit remplir (tout le tps avec des listbox) et après elle appuie sur un boutton et peut voir les résultats dans une msgbox.
En fait les calculs sont déjà fait avant, pour chaque cas possible. Je voulais donc faire un code avec du " if " .. " and " ... "then" ...
Après le then je pensais mettre p = " (une valeur numérique calculée au préalable) "
Ainsi dans la msgbox je tappe mon texte et laisse des blancs en indiquant qu'il doit mettre la valeur de p. Je sais pas si j'explique très bien alors je vais donner un exemple : MsgBox ( " ......... vous avez " & p & " % de chances .......") si c'est toujours pas clair j'essaierai de réexpliquer.
Le seul problème c'est qu'apparament ce type de syntaxe n'est pas possible sur visual studio, alors qu'il marchait très bien sur excel ... il doit bien y avoir une correspondance. Quelqu'un peut m'aider ??
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
NB : dans les références de ton projet, décoche "microsoft.visualbasic" pour t'éviter de suite de prendre de mauvaises habitudes de codage (interdira les anciennes syntaxes VB6/VBA...)
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 21 nov. 2008 à 19:07
euh comment ça de formatage ? nan c'est de la saisie : j'ai un petit texte où il y a des "trous" qui doivent être remplis par certaines valeurs (par exemple p) qui dépendent des réponses de la personne sur le questionnaire.
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 21 nov. 2008 à 19:38
oulala je viens de voir que ça déforme totalement mon texte !! ça va peut-être être difficile à comprendre ...
aussi j'avais oublié de demander, est - ce que il faut bien mettre: " listbox1 = "Oui" " par exemple lorsque je veux dire que la personne a choisi oui dans la liste des choix de la listbox1 ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 21 nov. 2008 à 20:13
tu as lu le passage où je disais de décocher?
apparemment non
ensuite où sont déclarées p1 et p2 ?
et de quels types?
et je ne vois pas dans ton exemple où "tes trous" sont à saisir....
tu affiches bien un résultat contenant des variables....
MessageBox.Show(String.Format("Vous avez :{0}- {1}% d'avoir un fils daltonien{2}- {3}% d'avoir une fille daltonienne.", environment.vbnewline, p2, environment.vbnewline, p1), MsgBoxStyle.ApplicationModal, "Résultats")
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 21 nov. 2008 à 20:28
Ah oui je n'avais pas vu le N.B. ... merci du conseil ;)
en fait les "trous" c'est là où je met p1 et p2 ... en effet la syntaxe est vraiment différente ... je crois que je vais d'abord le faire sur excel comme je suis un peu pressé par le temps et puis après j'essaierai de le faire sur visual studio si j'ai le temps et puis ce sera plus facil pour qu'on puisse me donner des conseils si j'ai déjà le code fini en vba ...
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 25 nov. 2008 à 21:24
Alors voilà j'ai fini le programme sur excel (voir code ci-dessous).
J'ai quelques questions :
- j'utilise un userform avec des listbox, pour récupérer les valeurs choisies, est - ce qu'on est obligé de renvoyer la valeure vers une cellule du document excel ou on peut la prendre directement ?? (n'ayant pas la réponse et sachant comment faire en utilisant le renvoie de la valeure dans une cellule du fichier excel j'ai fait comme ça)
- est-ce normal que, pour que la valeur choisie dans la listbox soit prise en compte on soit obligé de cliquer dessus (elle est alors grisée)
Mon but reste tout de même de retranscrire ce code sur visual studio donc si vous pouviez m'aider pour me donner quelques correspondances entre les deux syntaxes ce serait très gentils (surtout que je suis un peu limité en temps ...)
Dernière chose, pour les personnes qui voudraient bien m'aider, j'ai fait une vidéo du programme (avec le userform et tout ...) qui peut permettre de mieux se rendre compte du résultat.
Code :
Pour le userform1 :
Private Sub CommandButton1_Click() [bouton "Voir les résultats"]
Dim p1 As Single
Dim p2 As Single
Dim q As Single
If Range("Données!C1").Formula "Oui" And Range("Données!C2").Formula "Homme" Then
p1 = "2,2"
p2 = "2,2"
ElseIf Range("Données!C1").Formula "Non" And Range("Données!C2").Formula "Homme" Then
p1 = "0"
p2 = "2,2"
ElseIf Range("Données!C1").Formula "Oui" And Range("Données!C2").Formula "Femme" Then
p1 = "4"
p2 = "4"
ElseIf Range("Données!C1").Formula "Non" And Range("Données!C2").Formula "Femme" And Range("Données!C3").Formula = "Oui" Then
p1 = "2"
p2 = "25"
ElseIf Range("Données!C1").Formula "Non" And Range("Données!C2").Formula "Femme" And Range("Données!C4").Formula = "Oui" Then
p1 = "2"
p2 = "25"
ElseIf Range("Données!C1").Formula "Non" And Range("Données!C2").Formula "Femme" And Range("Données!C3").Formula = "Non" And Range("Données!C4").Formula = "Non" Then
p1 = "222"
p2 = "111"
ElseIf Range("Données!C1").Formula "Non" And Range("Données!C2").Formula "Femme" And Range("Données!C3").Formula = "Je ne sais pas" Then
p1 = "2222"
p2 = "1111"
ElseIf Range("Données!C1").Formula "Non" And Range("Données!C2").Formula "Femme" And Range("Données!C4").Formula = "Je ne sais pas" Then
p1 = "22222"
p2 = "11111"
Else
p1 = "0"
p2 = "0"
End If
q = p1 + p2
UserForm1.Hide
MsgBox "Vous avez " & q & " % de chances d'avoir un enfant daltonien:" + Chr(10) _
+ "- " & p2 & " % d'avoir un fils daltonien" + Chr(10) _
+ "- " & p1 & " % d'avoir une fille daltonienne.", , "Résultats"
UserForm2.Show
End Sub
Private Sub CommandButton2_Click() [bouton annuler]
Range("Données!C1:C4").Delete
UserForm1.Hide
End Sub
Pour le userform2 :
Private Sub CommandButton1_Click() [bouton "oui j'ai fini"]
seb3009
Messages postés18Date d'inscriptiondimanche 16 novembre 2008StatutMembreDernière intervention23 décembre 2008 25 nov. 2008 à 21:27
Ah oui au fait je viens de voir, les trois dernier elseif, où les valeurs de p1 et p2 sont quelques choses comme 1111 ou 222, c'est juste parce que je n'ai pas encore calculer bonnes valeurs... et puis le else ne sert à rien normalement, enfin en tout cas il ne doit pas y avoir de valeurs pour p1 et p2, mais j'ai fait ça juste pour savoir lorsqu'il y avait un problème quand je testais le programme.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 25 nov. 2008 à 22:18
salut,
ne passe pas par la feuille excel tu vas t'emmêler encore plus les pinceaux
une listbox "fonctionnerait". c'est grisé non pas parce que c'est bloqué.... mais parce que la listbox avec la ligne sélectionnée (bleu) perd le focus...
soit tu utilises des COMBO pour lire la valeur choisie qui sera dans .Text, soit il faut d'abord que tu ailles lire l'index du .Selected, puis le .List(index_trouvé)
ps : simplifie-toi la lecture avec tes 50 if.....
si homme => batterie de tests
sinon si femme => autre batterie
...
++
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp