excel, programmation [vba] - VB/VBA/VBS - Programmation
Marsh Posté le 16-09-2006 à 19:59:08
Bonjour,
Voici quelques sites qui pourront t'aider à programmer en VBA (dans l'ordre d'apprentissage on va dire) :
À noter que VBA et VB ont beaucoup de choses en commun : les explications données à VB sont globalement valabes pour VBA (si jamais tu trouves un site proposant une meilleure pédagogie pour VB).
Concernant le programme que tu veux faire, il ressemblerait à ceci :
Routine exécutée lors d'un clic sur le bouton CommandButton1 :
Private Sub CommandButton1_Click() |
On vient de déclarer deux variables (Ligne et Colonne) et on leur donne une valeur.
Puis on se sert de la fonction IsDate() qui renverra la valeur True si son argument est une date.
Dans notre cas, son argument est la valeur contenue dans la cellule D9.
Si la fonction IsDate renvoie True, alors on lance la procédure MaSousRoutine1. Si non, alors on lance la procédure MaSousRoutine2.
Voici le contenu des deux procédures :
Sub MaSousRoutine1() |
Sub MaSousRoutine2() |
Leur but est d'afficher une boîte de dialogue personnalisée. Bien sûr, toi, tu remplaceras cette fonction par ce que tu veux.
N'hésite pas à passer par ici si tu bloques sur un point après quelques recherches
Marsh Posté le 19-09-2006 à 22:09:35
Trouve toi "VBA Excel" pour les Nuls, et aussi, pour commencer à déchiffrer du code (essentiel pour en écrire par la suite !!), enregistre tes manipulations avec l'enregistreur de macros, puis passe sur le code pour le revoir. Tu te familiarisera rapidement avec les diverses possibilités...
Bienvenue !!
PS : j'étais au même point que toi y'a 6 mois et maintenant ça va mieux, je suis certainement pas expert mais je m'en sors...
Marsh Posté le 22-09-2006 à 00:39:18
La base c'est de savoir faire :
Un test :
if truc = bidule then
...
else
...
end if
un for each :
For i = 1 to 100
...
Next i
Et une boucle :
Do While truc = bidule
...
Loop
Il y a plein de Tuto sur internet qui présente les instructions de base.
Apres en enregistrant des macros et en adaptant le code on peut faire énormément de choses.
Ne pas hesiter à utiliser l'explorateur d'objet pour trouver les propriétés et fonctions associées aux objets que l'on manipule ou chercher sur internet des exemples a adapter.
Ne pas se priver d'utiliser les fonctions de debug qui sont ce qu'elles sont mais qui restent de loin le moyen le plus pratique pour rechercher la cause d'une erreur (boucle infinie etc...) et ne pas cribler le code de msgbox comme le font certain débutant.
Enfin dans un dernier temps il y a souvent pleins de moyens d'arriver au résultat recherché. La vrai difficulté est de choisir la bonne méthode afin d'avoir un code compact et lisible et efficace car sur des projets avec pas mal de code quand on doit s'y replonger 6 mois plus tard et que le truc n'a aucune logique c'est tres tres pénible.
Bon courage !
Marsh Posté le 22-09-2006 à 00:41:15
Et commencer ses modules par "option explicit" ca évite les mauvaises surprises...
Marsh Posté le 05-11-2006 à 13:02:35
Bonjour à tous
merci pour votre aide
Jai commencé à lire Cathy Astuce, et je fais m'acheter "VBA Excel" pour les Nuls, mais je ne sais pas encore lequel acheter.
Je suis peux être 1 peux nul, mais j'ai pas encore compris à quoi servait les feuilles de module
Je voudrais mettre un compteur à chaque fois que j'utilise le programme. Je m'explique:
La cellule "N2" sera la dernière ligne que j'utile, et que celle-ci sera augmenté de +1 comparer à la cellule "N3".
Jespère que j'étais assez clair et court.
Je vous remercie par avance pour votre aide.
Marsh Posté le 07-11-2006 à 11:38:26
C'est pas très clair !
Mais tu peux faire une action sur un bouton.
Quand tu cliques sur le bouton qui lance ton programme :
Private Sub CommandButton1_Click()
Range ("N2" ).value = Range ("N3" ).value + 1
End Sub
Marsh Posté le 16-09-2006 à 18:56:02
Bonjour à tous.
je voudrait apprendre à programmer des macros sur excel. Je connais 1 peu la programmation, par tâtonnement. Mais la, je ne sais pas comment l'écrire. je voudrais...
"Si dans la cellule D9, posséde une date, fait le programe 1, si continue...."
pourriez-vous m'aider pour cette ligne?
et ou je pourrais trouver, des cours sur la programmation de vba, sur internet.
Je vous remercie par avance.
Message édité par starlion le 16-09-2006 à 18:58:26