Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 08/03/2010, 12h37   #1
Membre à l'essai
 
Inscription : mai 2008
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 79
Points : 22
Points : 22
Par défaut Répéter une macro sur plusieurs cellules

Bonjour à tous,

Je cherche à répéter une macro sur plusieurs cellules.
En gros, je voudrais qu'après avoir effectuer son action, la macro se répète sur la cellule inférieure et ce jusqu'à la fin du fichier.
Je crois que c'est un système de boucle mais mes connaissances en VBA commencent à être un peu loin !!!
Merci de m'aider
arkorrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 12h48   #2
Nouveau Membre du Club
 
Inscription : novembre 2009
Messages : 47
Détails du profil
Informations personnelles :
Localisation : France, Essonne (Île de France)

Informations forums :
Inscription : novembre 2009
Messages : 47
Points : 29
Points : 29
bonjour,

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub macro()
    Selection.Value = "coucou"
End Sub
 
Sub laboucle()
    Dim cell As Range
    For Each cell In Range("A1:A1000")
        cell.Select
        Application.Run "macro"
    Next cell
End Sub
ce code fonctionne s'il est noté dans un module
cordialement
soubichat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 17h28   #3
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 431
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 31
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 431
Points : 4 042
Points : 4 042
Envoyer un message via MSN à Qwazerty
Salut
Autant éviter les select dans le code, cela ralenti son exécution.

Code :
1
2
3
4
5
6
7
8
Sub laboucle()
    Dim cell As Range
    'Stopper le rafraichissement
    Application.screenUpdating = false 'il se remet a true a la fin de la procédure en cours
    For Each cell In Range("A1:A1000")
        cell.Value = "coucou"
    Next cell
End Sub
Si on souhaite interagir sur la cellule via une autre procédure ou fonction, on passera simplement la cellule en paramètre a cette procédure/fonction.

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub macro(TheCel as range)
    TheCel .Value = "coucou"
End Sub
 
Sub laboucle()
    Dim cell As Range
    Application.screenupdating = false
    For Each cell In Range("A1:A1000")
        macro Cell
    Next cell
End Sub
a++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Score PowerBall Gyroscope Green : 11847
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 06h28.


 
 
 
 
Partenaires

Hébergement Web