Comment realiser une macro - VB/VBA/VBS - Programmation
Marsh Posté le 16-06-2005 à 14:08:42
Salut,
Tu peux préciser ton pb pour qu'on puisse t'aider, en joignant un fichier par exemple (< 50 Mo et sans espace)
De plus, peux tu me donner plus d'info sur ton école, ça m'intéresse.
A+
Marsh Posté le 16-06-2005 à 14:14:48
Bonjour les gas,
Merci d'avoir repondu a mon appel au secours !
Je vous envoie le tableau pour que ce soit plus clair. La partie que je veux automatiser est en jaune.
L'ecole est dans le centre de Londres pour repondre a ta question Jerome, son nom est Mayfair School of English.
Leur site Internet est www.Mayfairschool.co.uk, je travaille dans le bureau, alors si tu veux appeler, tu peux et demande-moi a ce moment-la, mais pas au nom de Maria, au nom de Babita. Sur leur site, tu trouveras les infos que tu veux.
Marsh Posté le 16-06-2005 à 14:59:02
...
Marsh Posté le 16-06-2005 à 16:07:49
Voila mon probleme Jerome: J'ai un tableau qui presente les noms et prenoms des etudiants, leurs nationalites, les types de cours demandes par chacun, ensuite les semaines des mois de mai, juin et juillet, puis enfin les dates auxquelles ils commencent et finissent.
La partie du tableau que je veux automatiser est celle qui concerne les semaines des mois de mai, juin et juillet. J'aimerais que lorsqu'une semaine est terminee, elle disparaisse pour laisser la place a la semaine qui suit car c'est moi qui doit chaque semaine le faire manuellement. Je sais que les macros servent a automatiser des taches repetitives. Pourrais-tu m'aider?
Marsh Posté le 16-06-2005 à 16:37:55
Essaye ce code, il n'est pas optimisé mais il marche:
Sub test()
Dim i, compteur
compteur = 1
For i = 1 To 10 'pour les lignes 1 à 10...
If Range(Cells(i, 3), Cells(i, 3)).Value < Date Then 'si date < date actuelle(...de la colonne C)
Rows(i).Delete 'supprime la ligne
i = i - 1
ElseIf compteur = 10 Then
i = 10
End If
compteur = compteur + 1
Next
End Sub
A+
Marsh Posté le 16-06-2005 à 17:07:46
OK, je vais essayer, j'espere que cela va marcher car je n'en peux plus !
Marsh Posté le 16-06-2005 à 18:03:57
Je voulais te demander si je devais egalement ecrire ce qui etait en francais concernant ce que tu m'as donne ?
Marsh Posté le 16-06-2005 à 18:09:25
Le "i" et le "compteur" sont des variables défini par l'utilisateur, donc on peut écrire ce que l'on veut.
Marsh Posté le 16-06-2005 à 18:15:30
J'ai ecrit exactement ce que tu m'as donne, le resultat est assez surprenant car mon tableau disparait et le classeur d'Excel se met a clignoter sans arret ! J'ai du faire un arret manuel pour tout stopper ! Je dois etre stupide ! Peut etre que je n'ai pas tout bien fait ! Je ne comprends pas tout du vocabulaire informatique ! C'est un peu etranger pour moi ! Mais merci d'avoir essaye de m'aider !
Marsh Posté le 16-06-2005 à 18:44:01
En faite la macro tourne sur toutes les lignes, le compteur n'arrive jamais a 10.
Ca m'a fait la même chose au début, j'ai du ajouter le compteur pour certain exemple, j'ai peut être pas pris en compte toutes les possibilités.
As tu activé "option explicite" dans VBA , (ça doit être écrit en haut de chaque feuille et module)? Cela t'oblige a déclarer tes variable et donc évite les fautes de frappe.
Donne moi un exmple si tu veux...
Marsh Posté le 16-06-2005 à 19:23:17
Je reessaierai demain, je dois partir a present, je te dis a demain matin. Je te remercie vraiment de te donner tant de mal pour m'aider.
A demain bye
Marsh Posté le 17-06-2005 à 14:23:01
Jerome, salut. Je ne trouve pas l'option explicite dans VBA, dans la feuille ou le module. Moi, les logiciels se presentent en anglais ici. Je comprends ce n'est pas le probleme, mais je ne le trouve pas. J'ai Microsoft 2003.
Marsh Posté le 17-06-2005 à 15:30:56
Salut,
Tu peux d'une part écrire "option explicit" en haut de la feuille ou du module (avant le sub).
D'autre part l'activer pour que ça s'affiche automatiquement à chaque création de module:
Sous VBA : outils/option/ onglet éditeur, cocher la case "déclaration des variables obligatoire" (2ème ligne à cocher en francais)
Envoi un exemple et j'essairais de d'aider.
A+
Marsh Posté le 22-06-2005 à 11:16:40
En fait je viens tout juste d'avoir tes mess !
J'avais laisse ce probleme de cote !
Je vais essayer tout ce que tu viens de me donner et j'espere que cette fois sera la bonne...
Marsh Posté le 22-06-2005 à 11:49:26
Coucou Jerome, je vais te recopier la formule avec les rangees que je veux automatiser, tu me diras ce que tu en penses : compteur c'est meter en anglais.
Sub test()
Dim i, meter
meter = 8
For i = 8 To 33
If Range(Cells(i,3), Cells (i,3)).Value < Date Then
Rows (i).Delete
i = i - 8
ElseIf meter = 10 Then
i = 33
End If
meter = meter + 8
Next
End Sub
Alors qu'en penses-tu ?
Marsh Posté le 23-06-2005 à 08:09:38
Salut,
3ème ligne en partant du bas c'est plutot:
"meter = meter + 1" pour que chaque lignes soient vérifiées.
Car si tu mets "8" ça va avancer de 8 lignes en 8 lignes.
Dis moi si ça marche
Marsh Posté le 27-06-2005 à 15:17:04
Bonjour Jerome,
J'ai ecrit Option explicit sous la feuille module, j'ai essaye le code. Mais tout cela ne change rien ! J'ai toujours le meme probleme... C'est vraiment bizarre !
Marsh Posté le 27-06-2005 à 18:03:57
oui je t'ai repondu tu n'as pas vu? Le code que tu m'as donnne ne marche pas !
Marsh Posté le 28-06-2005 à 09:04:03
Salut,
Peux tu m'envoyer ton nouveau code, je ne vois ou est le problème. Je pensais que le problème venait du "8", car le code marche bien chez moi.
A+
Marsh Posté le 28-06-2005 à 12:36:53
Coucou,
Je pense que peut-etre je n'ai pas fait les choses comme il fallait. J'ai pourtant active l'option explicit sous la feuille de module, mais toujours le meme probleme. Je verrai cela plus tard... Je vais verifier a propos de l'option explicit... Le code est le meme, je n'en ai pas de nouveau. Je te recontacterai.
Bye.
Marsh Posté le 29-06-2005 à 15:10:46
Salut,
Ecoute ton code ne fonctionne pas avec moi. J'ai tout refait encore et encore, en respectant ce que tu m'as donne mais il n'y a rien a faire, cela ne veut pas marcher...
Je chercherai un autre moyen. Merci quand meme.
Marsh Posté le 16-06-2005 à 13:38:00
Bonjour amis du forum,
J'ai reelement besoin d'aide.
Je suis en stage en angleterre. J'ai a ma disposition un tableau que je dois automatiser ! Il represente des listes d'etudiants avec des semaines d'etudes. Je suis dans une ecole qui permet a des etrangers ou europeens d'apprendre ou ameliorer leur anglais. Dans ce tableau, j'aimerais que les semaines s'ajoutent et s'annulent automatiquement ! Je suis perdue et Google ne m'aide pas comme je le desirerai ! Je sais comment faire une macro mais je n'arrive pas a obtenir ce que je veux !
Si quelqu'un pouvait m'aider, ce serait vraiment sympa !
Je vous remercie d'avance.
Bye
Maria