منتديات موظفي المصالح الاقتصادية
الدرس الأول في VBA M5zn_d0e1d87388e25d5
الدرس الأول في VBA ?img=0afe0096e5c2a91
منتديات موظفي المصالح الاقتصادية
الدرس الأول في VBA M5zn_d0e1d87388e25d5
الدرس الأول في VBA ?img=0afe0096e5c2a91
منتديات موظفي المصالح الاقتصادية
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات موظفي المصالح الاقتصادية

يهتم بشؤون موظفي المصالح الاقتصادية لقطاع التربية في الجزائر
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول

 

 الدرس الأول في VBA

اذهب الى الأسفل 
+7
khaled_25
kardjoudj
kaderz
asm
زياد حبيب
belfadelmourad
MouloudR
11 مشترك
كاتب الموضوعرسالة
MouloudR
Admin
Admin
MouloudR


عدد المساهمات : 482
تاريخ التسجيل : 06/05/2010

الدرس الأول في VBA Empty
مُساهمةموضوع: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالجمعة 02 يوليو 2010, 17:37

بسم الله الرحمان الرحيم

اليكم الدرس الأول في VBA للتجربة فقط (رابط التحميل في نهاية الدرس)
يرجى منك وضع ردا ثم تحميل الدرس وشكرا

Les astuces excel VBA Pas à Pas
Introduction
Définitions
L'enregistreur de macros
L'éditeur Visual Basic (VBE)
Les objets Microsoft Excel
Les modules
VBA en Français ou en Anglais ?
Conventions d'écritures
Macros ou fonctions
Exécuter une macro
Les modules de feuille
Le module ThisWorkbook
Les Userforms ou formulaires
Les modules de classe
Structurer une macro
Les instructions conditionnelles
Les plages de cellules : l'objet range
les boucles

Introduction
Vous avez entendu parler de "macros", de Visual Basic, d'enregistreur de macros, de modules mais vous ne savez pas du tout ce que sont ces bêtes là ? Alors cette fiche est pour vous. Nous n'aborderons ici que les notions de base, indispensables pour pouvoir utiliser ensuite l'aide fournie par Excel, (accessible avec la touche F1 depuis l'application) par les astuces et classeurs exemples d'Excelabo et par le forum MPFE. Beaucoup des notions indispensables pour démarrer avec les macros snt en fait déjà expliquées sur excelabo. L'objectif de cette page est de les présenter de façon plus didactique et ordonnée. Les liens vers les explications plus détaillées vous seront indiqués.
Quelques définitions
Macros : Une macro (sous entendu macro-commande) est une suite d'instructions permettant d'effectuer une tache répétitive simplement. Cette macro peut être très simple, comme reproduire une mise en forme, ou beaucoup plus complexe, incluant par exemple des tests sur la valeur d'une cellule ou des calculs complexes. Les macros peuvent aussi "sortir d'excel", aller ouvrir des fichiers dans un répertoire, transférer des fichiers par FTP sur un serveur distant, ouvrir d'autres applications... Les possibilités sont innombrables. Une macro fait souvent appel à des variables.
Variables : Si je veux multiplier par deux la valeur de toutes les cellules sur fond bleu de ma feuille, je peux écrire une macro qui balaiera toute la feuille et réalisera cette opération. Maintenant, si je veux faire la même chose mais en cherchant les cellules sur fond rouge et les multiplier par 3, au lieu de refaire toute la macro, je peux utiliser une "variable" pour la couleur et une pour l'opération à effectuer. En début de macro, j'affecterai une valeur rouge à la variable que j'appelle 'couleur' et la valeur 3 à ma variable 'opération'. Dans la macro, j'utiliserai ensuite les variables en lieu et place des valeurs qui leurs sont affectées. Vous pouvez lire d'autres infos sur ce sujet sur la page lexique ou sur la page Débuter.
Visual Basic pour Application ou VBA : VBA est une forme spécialisée de Visual Basic pour une application donnée. Il existe un VBA pour word, pour excel, pour outlook... VBA est dérivé du langage de programmation basic. Il fait partie des langages dits "orientés objets".
Objet : Un objet VBA est un élément que l'on peut manipuler par le langage de programmation. Il possède des propriétés et des méthodes ou des événements lui sont associés. Une feuille excel d'un classeur est un objet. Elle possède des propriétés comme sa taille, son index. Certaines sont modifiables comme le nom, la propriété visible ou cachée. Les méthodes ou événements associés à une feuille sont par exemple les methode open (ouvrir), close (fermer), beforeprint (s'effectue avant l'impression)... Il y a de très nombreux objets dans excel (les cellules, les boutons des barres d'outils, le classeur lui même, les graphiques...). Il n'est pas question d'en dresser la liste exhaustive avec les propriétés, méthodes et événements associés puisqu'Excel le fait pour nous dans l'aide de visual basic et dans la fenêtre "explorateurs d'objets" dans l'éditeur VBA.
L'éditeur VBA ou VBE : Pour écrire des macros, il faut ouvrir l'éditeur visual basic ou VBE (Visual Basic Editor). Depuis excel, vous pouvez y accéder en cliquant droit sur le nom d'un onglet en bas et en choisissant "voir le code", par le menu outils/macros/visual basic editor ou bien en cliquant sur alt+F11. Vous pouvez également personnaliser vos barres d'outils et "monter" l'icone de VBE. Nous verrons plus loin ce que contient une fenêtre VBE.
L'enregistreur de macros, ma première macro
L'enregistreur de macros est un outil de base pour débuter en programmation mais aussi lorsque, programmateur chevronné, on ne se souvient plus de la syntaxe d'une instruction. Nous allons faire une première macro pour voir les principaux points.
Dans cet exemple, nous allons sélectionner une plage de cellules, la copier ailleurs sur la feuille et la mettre en police rouge.
Ouvrez le classeur exemple pour plus d'explications.



Vous trouverez plus d'explications sur l'enregistreur de macros sur la page Débuter.
L'éditeur Visual Basic
Le code enregistré par l'enregistreur de macros est écrit dans l'éditeur visual basic, VBE. Ouvrez le (voir plus haut !).
La fenêtre qui s'ouvre se présente ainsi :




En haut : une barre d'outils spécifiques.
A gauche, l'explorateur de projets contient une liste de vos projets VBA actifs. Si vous avez installé des macros complémentaires vous les trouvez dans cette liste. Par exemple Funcres.XLA correspond à l'utilitaire d'analyse. Si vous essayez de lire ce fichier, un mot de passe vous sera demandé.
Vous trouvez également un dossier projet VBA associé au classeur sur lequel vous travaillez. A gauche et en bas, Vous trouvez la fenêtre des propriétés. Si cette fenêtre n'est pas visible, dans le menu affichage, sélectionnez "fenêtre propriétés". Cette fenêtre est très utile lorsque l'on travaille avec des formulaires VBA (ou userforms). Pour le moment cette fenêtre est soit vide, si la fenêtre centrale n'affiche rien, soit contient un petit menu déroulant affichant "module1". *
Les objets Microsoft
Dans l'explorateur de projet vous trouvez une rubrique intitulés Objets microsoft excel.Développez le. En ouvrant ce dossier vous voyez une liste correspondant à chacune des feuilles du classeur, plus une feuille nommée "ThisWorkbook". Si vous avez enregistré une macro dans ce classeur avec l'enregistreur, vous devez voir un dossier nommé modules. Dans celui ci vous avez une feuille nommée "module1" Cliquez dessus, vous voyez le code écrit par l'enregistreur. L'enregistreur de macros ne mélangeant pas ses oeuvres avec les votres, si vous aviez déjà créé une macro dans ce classeur, l'enregistreur aurait créé un deuxième module.
Les modules
Double cliquez sur "module1". Vous voyez apparaitre dans la fenêtre centrale le code enregistré. Dans la fenêtre centrale, vous pouvez bien sur écrire directement votre code, ou copier celui que vous avez trouvé sur le forum ou sur excelabo. Faites juste attention aux sauts de ligne. Si le code est écrit en rouge, c'est qu'excel n'est pas d'accord avec votre syntaxe. Sur le forum, les lignes sont souvent coupées par un retour chariot et VBE ne comprend plus. Si pour des raisons de lisibilité, vous devez couper une ligne, insérez un espace suivi d'un underscore (_) là ou vous voulez couper.

Vous pouvez écrire plusieurs macros dans un même module. Théoriquement, le nombre de modules par classeur n'est pas limité, sauf par la mémoire de votre PC. Cependant, pour économiser de la place, mais aussi pour faciliter la lecture des codes, il est plus judicieux de regouper dans un même module des macros destinées à fonctionner plus ou moins ensemble.
Les modules sont identifiés par défaut par des numéros. Vous pouvez modifier ceci pour mettre des noms plus parlants. Il vous suffit dans la fenêtre des propriétés, à coté de (name) de taper le nom de votre choix, sans espaces et sans caractères interdits.
VBA en Français ou en Anglais ?
Dans la version 5 d'excel (ou excel95), le VBA, issu de VB5 était en français. Cependant, depuis la version 7 (ou excel 97) (il n'y a pas de version 6!) Microsoft a abandonné le développement de VB en français. Sur PC, les versions postérieures à excel 95 utilisent VB6 en anglais exclusivement.
Ne soyez pas paniqués pour autant, même si vous ne parlez pas un mot d'anglais. D'abord, l'aide d'excel est en français. Ensuite le vocabulaire anglais utilisé est d'une pauvreté rare ! Apprendre à utiliser do... while n'est guère plus difficile que d'apprendre fait...tant que. L'avantage c'est que si vous avez déjà programmé dans d'autres langages ou si par la suite vous en apprenez d'autres , vous vous y retrouverez rapidement. Pour vous aider, microsoft livre avec excel un classeur intitulé VBAlist.xls qui traduit en français les noms de fonctions et les instructions. Ce classeur est installé au moment de l'installation. Si vous ne le retrouvez pas sur votre micro, vous pouvez y accéder ici. Vous trouverez également d'auters outils de traduction sur excelabo, notamment un classeur de Alain Vallon et un de Daniel Maher.
conventions d'écriture
L'écriture d'une macro commence par sub suivi du nom de la macro et de deux parenthèses vides. Ces parenthèses peuvent recevoir des paramètres qui seront passés à la macro. Vos premières macros n'en contiendront généralement pas.
La fin de la macro se termine par end sub, mot clef réservé qui indique la fin de la procédure (ou "sub")
Entre les deux vous voyez le code écrit par l'enregistreur. Celui-ci est toujours très complets. Si plusieurs attributs sont possibles pour un objet, l'enregistreur les précise tous, même ceux dont vous ne vous servez pas. Pour vous en convaincre, enregistrez une macro changeant les bordures d'une cellule. Vous verrez que le code généré est très "bavard". Vous pouvez généralement simplifier largement ce code. Pour voir quels sont les paramètres nécessaires, le plus simple c'est d'effacer ceux qui vous paraissent superflus et de voir si la macro fonctionne toujours. PLutôt que d'effacer réellement et de devoir retaper en cas d'erreur, mettez en commentaires le code à oublier. Pour cela, il suffit de mettre une apostrophe simple en début de ligne. Le texte change de couleur pour vous signaler ce changement (les couleurs sont paramétrables via le menu options de VBE). Vous pouvez mettre d'un coup tout un bloc de lignes ou revenir à l'état "non commenté" facilement en utilisant les boutons adéquats. Ceux-ci ne sont pas mis par défaut dans VBE, je vous conseille vivement de les installer en personnalisant VBE (menu affichage, barres d'outils, personnaliser, commandes, édition, commenter bloc et ne pas commenter bloc.

Les noms des macros sont très libres. Cependant, ils ne doivent pas contenir certains caractères comme des espaces, apostrophes, guillemets... Pour faciliter la lecture, je vous conseille de donner des noms assez explicites et d'introduire des majuscules dans le nom (pas forcément au début) comme MaPremiereMacro. L'intérêt est que si vous appellez cette macro depuis une autre par la suite, lorsque vous taperez en minuscules mapremieremacro, excel mettra de lui même les majuscules, vous signifiant par là qu'il a reconnu que vous appelliez cette macro. C'est très pratique pour éviter de faire des fautes d'orthographe.
Macros et fonctions
Vous entendrez parler de macros et de fonctions. Les deux s'écrivent dans VBE et leur fonctionnement est assez similaire. La fonction, qui s'identifie par
function()
...
end function
reçoit une valeur et en renvoie une autre. Par exemple, la fonction reçoit un nombre et renvoie celui ci au carré. Elle peut aussi recevoir du texte et renvoyé celui ci modifié (supression de caractères interdits) ou renvoyé le résultat d'un test avec vrai/faux. Une fonction reçoit, modifie et renvoie des valeurs. Une macro effectue plus généralement un traitement. Une macro peut par exemple si la valeur saisie en A1 est supérieure à 3 écrire "vrai" dans les cellules A2 à A20. Une fonction n'écrit rien dans la feuille ni ne modifie de format de cellule.
Exécuter une macro
Pour exécuter une macro, vous pouvez
soit rester dans VBE et passer par le menu exécution/exécuter la macro. La macro qui s'exécute est celle dans lequel votre curseur est présent (peu importe où).
Faire F5
vous mettre dans la feuille excel et choisir la macro depuis le menu outils/macro
Pour que ce soit plus pratique, vous pouvez également associer la macro à un bouton que vous placez sur la feuille. Cette procédure est décrite dans le classeur associé à ce fichier.
Vous pouvez également exécuter vos macros pas à pas pour en suivre le déroulement. Dans VBE, placez le curseur dans votre macro et appuyez sur la touche F8. Chaque instruction est exécutée puis le programme attend un nouvel appui su F8 pour continuer. En passant la souris au dessus des noms des variables, VBE affiche leur valeur. Indispensable pour les mises au point !


Le module que nous venons de voir est un module ordinaire, par opposition aux modules de feuilles et aux modules de classe.
Modules de feuilles
Si vous double cliquez sur le nom d'une des feuilles dans l'explorateur de projet VBE, vous ouvrez une feuille vierge dite "module de feuille. Les macros que vous écrivez dans ces modules sont construites de la même façon que les macros des modules ordinaires. Cependant, leur action ne s'exerce QUE sur la feuille à laquelle ils sont liés.
Dans cette feuille, en haut à gauche vous avez un petit menu qui contient deux rubriques : général et worksheet. Si vous sélectionnez général, le menu de droite en haut de cette feuille n'affiche rien. Vous vous mettez dans cette configuration pour écrire des macros non événementielles mais dont l'action (tri, formatage, calculs...) doit rester restreinte à la feuille. En revanche si vous choisissez worksheet, le menu de droite vous propose des événements associés à la feuille. Vous mettrez donc dans ces modules des macros événementielles. Ces macros, comme leur nom l'indique, se déclenchent lors d'un événement. Par exemple lorsque vous changez de feuille dans le classeur, vous pouvez activer l'affichage d'une barre d'outils personnalisée, ou le double clic dans cette feuille peut déclencher une suite d'opérations.
Les FONCTIONS doivent OBLIGATOIREMENT être écrites dans un module ordinaire, jamais dans un module de feuille, même si elles ne fonctionneront en fait qu'en rapport avec une feuille particulière.
ThisWorkbook
La feuille ThisWorkbook ("CeClasseur" en anglais) reçoit les macros événementielles liées au classeur lui même. Comme précédemment, le menu de droite vous montre quels sont ces événements. C'est dans cette feuille que vous mettrez par exemple une macro qui doit se lancer automatiquement à l'ouverture du classeur, dans une macro private sub workbook_open()



les Userforms ou formulaires
Dans l'explorateur de fichier, si vous faites un clic droit vous avez la possibilité d'insérer un nouvel objet : module ordinaire, module de classe ou userform.
Les userforms sont des boîtes de dialogue, entièrement paramétrables, qui vous permettent par exemple de faciliter la saisie de données par un utilisateur. Sur ces formulaires, vous placerez des outils ou "contrôles" tels que des boutons, des boites de texte, des menus déroulants... Ces différents outils sont disponibles à partir de la boîte à outil.



Vous trouverez deux pages entières consacrées aux userforms et aux contrôles sur excelabo et plusieurs classeurs de démonstration pour bien débuter avec ces outils vraiment puissants. Les macros qui sont associées aux contrôles d'un formulaire sont stockées avec celui ci. Dans l'explorateur de fichier, les userforms sont regroupés dans un dossier spécifique nommé feuilles (nom fort mal choisi car pretant à confusion avec les feuilles de classeur mais c'est comme ça !). Si vous double cliquez sur le nom d'un formulaire, vous ouvrez celui ci. Si vous faites un clic droit sur le nom du formulaire, vous accédez au code. Dans la fenêtre qui s'ouvre, dans le menu de gauche en haut, vous voyez le nom des différents contrôles que vous avez placé sur la feuille.
Modules de Classe
Le dernier type d'objet microsoft que vous pouvez ajouter depuis l'explorateur de projet, ce sont les modules de classe. Nous ne décrirons pas ces modules ici, leur usage n'étant clairement pas pour les débutants ! Sachez que ces modules permettent de créer des nouvelles classes d'objet, objets qui possèdent des propriétés et des méthodes associées. Pour en avoir un aperçu humoristique je vous recommande en guise de pause la lecture de cette petite leçon de Laurent Longre.
Structurer une macro
Avant de se lancer dans l'écriture d'une macro, analysez la tache à accomplir et essayer de la découper en petits morceaux que vous pourrez mettre au point et tester séparément. N'hésitez pas à ajouter des commentaires (lignes commençant par un ') pour faciliter la relecture de votre code et vous rappeller ce que vous voulez faire dans telle ou telle partie.
Cette phase préparatoire parait rébarbative mais elle peut pourtant faire gagner énormément de temps de programmation et d'exécution. Une macro peut faire appel à d'autres macros.
Votre macro principale peut donc donner juste ceci :

Sub Mamacro()
'je copie-colle les données nécessaires à la construction de mon graphique
copiecolle
'je construis le graphique
construction
'je le mets en forme
formatage
end sub

Chaque instruction dans cette macro est en fait un appel d'une autre macro. Je vous conseille cette écriture dès que vous avez des traitements un peu complexes à réaliser. Votre programme sera ainsi bien plus facile à debugger. Utilisez ensuite au maximum l'enregistreur de macros pour faire chaque petite "sous macro".
Dans l'exemple ci dessus, chaque sous macro est appellée directement par son nom. Vous pouvez aussi ajouter "call" devant pour vous rappeller que c'est un appel de macro.
Dans le même module (ou dans un autre), vous aurez donc toutes les macros appellées pas cette macro principale. Rien ne vous interdit, bien au contraire, de faire appel à une macro depuis plusieurs autres. C'est même vivement recommandé si cela permet d'économiser des lignes de codes, consommatrices de mémoire et toujours susceptibles de contenir des erreurs.

L'enregistreur de macros ne peut cependant pas comme nous l'avons déjà dit tout faire. Il est notamment incapable de faire des boucles ou de faire des choix. Nous allons voir rapidement ces deux types d'instructions.
Les instructions conditionnelles
Comment traduire en VBA la phrase suivante : si ma cellulea est sur fond bleu, alors multiplie sa valeur par 2, si elle est sur fond rouge, multiplie la par 3, sinon (autre couleur), divise la par 2 ?

Il y a plusieurs types d'instructions conditionnelles. La plus utilisée est l'instruction "if... then...else...end if", autrement dit : si, alors, sinon, fin de si.
Nous allons utiliser cette instruction dans notre exemple.
Avant tout, j'ai besoin de savoir comment dire à excel de tester la couleur de fond d'une cellule. Pour cela je lance l'enregistreur de macros et je colorie des cellules dans les couleurs de mon choix (bleu puis rouge). Je récupère le code :
Range("B5").Select
With Selection.Interior
.ColorIndex = 5
.Pattern = xlSolid
End With
Range("B6").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
La partie qui m'intéresse ici est Selection.Interior.ColorIndex. Le bleu a pour code 5, le rouge 3. L'écriture proposée par l'enregistreur comprend fréquemment des instructions With... end with.
L'enregistreur détaille toutes les propriétés associées à un objet. Ici l'objet cellule B5 est décrit par son adresse ou range (plage). Elle est d'abord sélectionnée. Le "." met en rapport l'objet range("B5") et la méthode associée : select. Ensuite, excel décrit une des propriétés de l'objet (selection.interior) avec tous ses arguments (colorindex et pattern). Pour éviter de redire chaque fois que colorindex ou pattern sont associés à l'objet cellule, d'adresse truc, de méthode machin et de propriété bidule, on utilise cette écriture condensée. Faites très attention aux points. Ils sont indispensables pour relier entre eux les objets, leurs propriétés et leurs méthodes associées.

Quand vous tapez votre code, VBE vous propose une aide à la saisie fort utile : si je tape activecell par exemple, pour faire référence à la cellule actuellement sélectionnée dans la feuille, au moment ou je tape le point derrière, un menu déroulant s'ouvre dans VBE et me propose les propriétés et méthodes associées à activecell. Il me suffit de sélectionner la propriété et taper enter. En tapant les premières lettres de la propriété, le menu s'ajuste pour restreindre les choix. Ceci me permet en plus de vérifier que j'ai bien employé le bon mot puisque cellactive n'entraîne pas l'ouverture du petit menu.
Voici donc notre première "vraie" macro :
Sub ConditionCouleur()
If ActiveCell.Interior.ColorIndex = 5 Then
ActiveCell.Value = ActiveCell.Value * 2
ElseIf ActiveCell.Interior.ColorIndex = 3 Then
ActiveCell.Value = ActiveCell.Value * 3
Else
ActiveCell.Value = ActiveCell.Value / 2
End If
End Sub
Commentaires :
If et then doivent toujours se trouver sur la même ligne.
vous pouvez ajouter autant de elseif que souhaité. Cependant d'autres instructions (select case) sont plus adaptées en cas de choix multiples.
si vous ne voulez rien faire si aucune des conditions n'est remplie, vous n'êtes pas obligé de mettre la ligne else.
Vous avez ici une propriété de base de nombreux objets excel : .value qui renvoie la valeur de la cellule (valeur numérique ou texte).
Le langage de programmation diffère des équations mathématiques ! vous voyez ici une ligne du type 2= 2/2 ! En fait, cette ligne indique à VBE de remplacer la valeur de la cellule active par cette même valeur divisée par 2. Cela évite de rajouter une variable intermédiaire. On pourrait tout à fait écrire :
variable1=activecell.value
Variable2=Variable1/2
activeCell.value=Variable2
Vous pouvez tester cette macro dans le classeur exemple depuis la page condition.
Les plages de cellules : l'objet range
Dans la macro précédente, nous devons cliquer sur le bouton lançant la macro après avoir sélectionné chaque cellule. C'est bien mais très souvent une macro doit être appliquée à une plage de cellule, voire à la cellule entière. Les plages de cellules sont manipulées en VBA par l'objet 'range' que l'on pourrait traduire par 'étendue'. Les pages cellules, adresses, et sélectionner vous donneront plus d'infos sur cette notion, pas évidente au démarrage. Mis à part l'exemple ci dessus avec ActiveCell, une cellule ne peut pas être manipulée directement par son adresse. Autrement dit, on ne peut pas écrire cell(A5).value On fait référence à une cellule par son range :
range("A5").value renvoie la valeur de la cellule
range("A5"). adresse renvoie... son adresse= A5, info que l'on pourra réutiliser par la suite dans certains cas.
Pour faire référence à une plage continue de cellules, on indique la cellule située la plus en haut à gauche et celle la plus en bas à droite, séparées par :
Range("A5:B30").select sélectionne toutes les cellules du rectangle A5-A30-B30-B5
Pour sélectionner toute une ligne on utilise :
range("2:2").select et pour une colonne : range("A:A").select
Il peut être utile de préciser sur quelle feuille on se situe :
sheets("condition").range("B3").interior.colorindex=24
Et même quand plusieurs classeurs sont ouverts, il peut être nécessaire de préciser le classeur :
workbooks("fc-vbapasapas.xls).sheets("condition").cells.clearcontent
"Cells" est un mot réervé de VBA, il fait référence à l'ensemble des cellules de la feuille. Clearcontent vide les cellules de leur contenu mais pas du format des cellules.
Workbooks fait référence à la collection des classeurs excel. Fc-vbapasapas.xls est un élément de cette collection. De même sheets est la collection des feuilles contenues dans un classeur. Sheets regroupe toutes les feuilles, quelque soit leur nature : chiffrier (ou worksheet) ou feuille graphique. Range est en fait une collection d'éléments cellules. On peut donc manipuler un range soit globalement soit élément par élément en utilisant une boucle.
Les boucles
La macro précédente st intéressante mais bien souvent, il est nécessaire d'appliquer une macro non pas sur un élément sélectionné à l'avance mais sur l'ensemble des cellules d'une plage. Nous allons donc modifier cette macro pour qu'elle effectue le traitement sur l'ensemble des cellules de la plage A3:A7
Sub ConditionSurPlage()
For Each c In Range("A3:A7")
If c.Interior.ColorIndex = 5 Then
c.Value = c.Value + 100
End If
Next c
End Sub
Commentaires :
Pour manipuler les éléments de l'objet range, nous créons une variable, ici 'c' mais on pourrait l'appeller n'importe comment (sauf d'un mot réservé par excel comme cells, new, item...).
Il faut faire attention à insérer correctement la condition dans la boucle. Le fait d'indenter les macros permet de mieux repérer les tests de conditions (if/end if) et les boucles (for...next). Si les deux ne sont pas imbriqués correctement, au moment du lancement de la macro, excel vous dira "for sans next" ou "if sans end if".
Il y a d'autres façons de faire des boucles. En comptant les éléments (for i=27 to 34, next i); en testant si une condition est remplie ou non (do while... loop) ou (do until...loop)


Voilà, j'espère qu'avec ceci vous avez les éléments nécessaires pour comprendre ce qu'est une macro et vous essayer à créer les votres. Vous trouverez de très très nombreux exemples pour vous aider sur de nombreux sites excel, y compris celui-ci et aussi sur le forum. Lancez vous ! ça parait compliqué au début mais il n'y a en fait que quelques notions à maitriser pour pouvoir se lancer. Les notions complexes viendront ensuite !


واليك الرابط لتنزيل هذا الملف كاملا :

Les astuces excel VBA Pas à Pas.htm


هذا الدرس يعتبر تجربة أولى فقط وسياتيكم المزيد بصورة أوضح
الرجوع الى أعلى الصفحة اذهب الى الأسفل
belfadelmourad




عدد المساهمات : 15
تاريخ التسجيل : 17/05/2010

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالخميس 08 يوليو 2010, 00:13

بسم الله الرحمن الرحيم
أولا أود أن أشكر الأخ مولود على هده المبادرة الطيبة متمنيا من المولى عز و جلى أن يجعل هدا العمل خالصا لوجه الله و أن يجعله في ميزان حسناتك إنشاء الله وواصل في يدل مجهوداتك....
من الأخ و الزميل مراد يلفاضل من مستغانم ...........شكرا جزيلا.

الرجوع الى أعلى الصفحة اذهب الى الأسفل
زياد حبيب
مساعد أول
مساعد أول
زياد حبيب


عدد المساهمات : 535
تاريخ التسجيل : 02/06/2010

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالخميس 08 يوليو 2010, 09:30

مشكور و اتمنى ان تكون في الريادة
الرجوع الى أعلى الصفحة اذهب الى الأسفل
MouloudR
Admin
Admin
MouloudR


عدد المساهمات : 482
تاريخ التسجيل : 06/05/2010

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالجمعة 09 يوليو 2010, 10:23

شكرا لكم جميع ودمتم لهذا الركن وللمنتدى كله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
asm

asm


عدد المساهمات : 21
تاريخ التسجيل : 29/06/2010
العمر : 42

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالجمعة 09 يوليو 2010, 11:39

مشكور يا أخي لك فضل كبير علينا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
kaderz
عريف
عريف



عدد المساهمات : 97
تاريخ التسجيل : 17/05/2010
العمر : 51

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالجمعة 30 يوليو 2010, 17:35

merciiiiiiiiiiiii
الرجوع الى أعلى الصفحة اذهب الى الأسفل
kardjoudj




عدد المساهمات : 10
تاريخ التسجيل : 16/04/2010
العمر : 56

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالجمعة 30 يوليو 2010, 21:38

شكرا يا أخي علي هذا المجهود الطيب و جزاك الله خيرا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
khaled_25




عدد المساهمات : 6
تاريخ التسجيل : 06/12/2011

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالثلاثاء 06 ديسمبر 2011, 21:58

بارك الله فيك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
omar
رقيب
رقيب
omar


عدد المساهمات : 248
تاريخ التسجيل : 08/04/2011

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالأربعاء 28 مارس 2012, 03:15

مشكور
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ELMATMATI
عريف أول
عريف أول
ELMATMATI


عدد المساهمات : 157
تاريخ التسجيل : 20/03/2012

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالإثنين 02 أبريل 2012, 18:57

بارك الله فيك أخي على المجهود
الرجوع الى أعلى الصفحة اذهب الى الأسفل
benhenni
مساعد أول
مساعد أول
benhenni


عدد المساهمات : 551
تاريخ التسجيل : 23/02/2011

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالخميس 24 مايو 2012, 13:55

مشكور
الرجوع الى أعلى الصفحة اذهب الى الأسفل
benhenni
مساعد أول
مساعد أول
benhenni


عدد المساهمات : 551
تاريخ التسجيل : 23/02/2011

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالسبت 23 مارس 2013, 10:07

بارك الله فيك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
streamy




عدد المساهمات : 17
تاريخ التسجيل : 19/08/2013

الدرس الأول في VBA Empty
مُساهمةموضوع: رد: الدرس الأول في VBA   الدرس الأول في VBA I_icon_minitimeالجمعة 15 يوليو 2016, 18:24

شكرا على الدرس حقا نحتاج إلى هذه الدروس لتسهيل بعض الأعمال و ربح الوقت. هل هناك المزيد منها ؟
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
الدرس الأول في VBA
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» لازلنا لم نفهم الدرس جيدا
»  الدرس الإفتتاحي للدخول المدرسي 2018/2017
» التناقض الأول
» لغزللحل...............
» العودة إلى المربع الأول

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات موظفي المصالح الاقتصادية  :: النشاطات العلمية :: منتدى الاعلام الآلي-
انتقل الى: