Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1180 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba]excel, programmation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vba]excel, programmation

n°1443459
starlion
Posté le 16-09-2006 à 18:56:02  profilanswer
 

Bonjour à tous. :hello:  
 
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. :jap:


Message édité par starlion le 16-09-2006 à 18:58:26
mood
Publicité
Posté le 16-09-2006 à 18:56:02  profilanswer
 

n°1443468
juju2k
Posté le 16-09-2006 à 19:59:08  profilanswer
 

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()
Dim Ligne As Integer
Dim Colonne As Integer
 
    Ligne = 9
    Colonne = 4
 
    If IsDate(Cells(Ligne, Colonne).Value) = True Then
        MaSousRoutine1
    Else
        MaSousRoutine2
    End If
End Sub


 
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()
    MsgBox "C'est une date !"
End Sub


 

Sub MaSousRoutine2()
    MsgBox "Ce n'est pas une date !"
End Sub


 
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 ;)


Message édité par juju2k le 16-09-2006 à 20:08:13
n°1443482
galopin01
Posté le 16-09-2006 à 20:53:24  profilanswer
 

bonjour,
on autre lien qui me parait pas mal.
A+

n°1444926
ruzakruzak
Pom pom pom, gé-ant vert !
Posté le 19-09-2006 à 22:09:35  profilanswer
 

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... ;)

n°1446056
fifiz
Posté le 22-09-2006 à 00:39:18  profilanswer
 

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 !

n°1446057
fifiz
Posté le 22-09-2006 à 00:41:15  profilanswer
 

Et commencer ses modules par "option explicit" ca évite les mauvaises surprises...

n°1470770
starlion
Posté le 05-11-2006 à 13:02:35  profilanswer
 

Bonjour à tous  :hello:  
 
 :jap: merci pour votre aide  :jap:  
 
J’ai 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".
 
J’espère que j'étais assez clair et court. :heink:  
 
Je vous remercie par avance pour votre aide.  :jap:  

n°1471531
juans
Posté le 07-11-2006 à 11:38:26  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba]excel, programmation

 

Sujets relatifs
[C#/Excel] Comment ajouter une liste déroulante dans une cellule ?dual core, quad core, et programmation
envoie d'un mail via excel apres enregistrement[vba excel] executer une macro sur un click
Importer des donnees txt sur excel[VB/VBA/VBS] Macro Excel - nommer des cellules par lot
Programmation ExcelExcel : Fonction? Programmation ? Macro ? Help me Please !!!!
programmation sous excelProgrammation sous Excel
Plus de sujets relatifs à : [vba]excel, programmation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR