Lancer une macro en tache de fond

  • Initiateur de la discussion Initiateur de la discussion phoque.r
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

phoque.r

XLDnaute Occasionnel
(re)Bonjour

voila mon problème:
je voudrais lancer une macro en tache de fond qui agit sur une colonne et quand on remplit une case de cette colonne, elle met une couleur de fond en plus.


J'ai deux questions:
-comment faire pour lancer cette macro en tache de fond?
-cela ne risque-t-il pas de prendre trop de mémoire vive?
 
Re : Lancer une macro en tache de fond

Bonjour Phoque

ci dessous macro évènementielle à placer dans le module de la feuille en question. click droit sur le nom de l'onglet => visualiser le code.

colore la cellule modifiée de la colonne b, si non vide.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Column = 2 And Target.Value <> "" Then
    Target.Interior.ColorIndex = 3
End If
End Sub

bon après midi
@+
 
Re : Lancer une macro en tache de fond

Hello

en fait il y a une solution (assez courrente) qui ne travail pas en tache de fond mais en évenementiel.

donc :
dans le code de la feuille ou tu veux que la macro s'effectue.
tu colles ce code
'''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) '''début des instructions évenementielles sur la feuille

Application.ScreenUpdating = False 'ne pas montrer les action réaliser , augmente la vitesse d'execution

'''''contrôle de sélection simple si sélection de pls colonne ou ligne alors pas de macro ...
If Target.Rows.Count > 1 Then
Exit Sub
End If
If Target.Columns.Count > 1 Then
Exit Sub
End If

'''''''''''''''''''''NOUVELLE TACHE
If Not Application.Intersect(Target, TACOLONNE) Is Nothing Then

ICI TA MACRO A REALISER SI CLIC dans une cellules de la colonne

end if
''''''''''''''''''


end if '''fin des instructions évenementielles sur la feuille



j'utilise souvent ce code pour que des cellules agissent comme des boutons.
si pb n'hésite pas.
et surtout met ton classeur en piéce jointe (.zip, de moins de 50Ko, nom sans espace et accent)
 
Re : Lancer une macro en tache de fond

Voila mon fichier en pièce jointe.

La première colonne, je m'en fiche.
La seconde: quand je mets les codes BFCF, BSP,... dans une case, je voudrais que ca me mette une couleur (qui dépend ensuite des codes, mais là je me débrouillerai avec des If)
 

Pièces jointes

Re : Lancer une macro en tache de fond

bonjour phoque, fifi, pierrot

fifi à dit:
Hello

en fait il y a une solution (assez courrente) qui ne travail pas en tache de fond mais en évenementiel.

donc :
dans le code de la feuille ou tu veux que la macro s'effectue.
tu colles ce code
'''''''''''''''''''''''''''''''''''''''''
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) '''début des instructions évenementielles sur la feuille

Application.ScreenUpdating = False 'ne pas montrer les action réaliser , augmente la vitesse d'execution

'''''contrôle de sélection simple si sélection de pls colonne ou ligne alors pas de macro ...
If Target.Rows.Count > 1 Then
Exit Sub
End If
If Target.Columns.Count > 1 Then
Exit Sub
End If

'''''''''''''''''''''NOUVELLE TACHE
If Not Application.Intersect(Target, TACOLONNE) Is Nothing Then

ICI TA MACRO A REALISER SI CLIC dans une cellules de la colonne

end if
''''''''''''''''''


end if '''fin des instructions évenementielles sur la feuille



j'utilise souvent ce code pour que des cellules agissent comme des boutons.
si pb n'hésite pas.
et surtout met ton classeur en piéce jointe (.zip, de moins de 50Ko, nom sans espace et accent)

fifi une petite question

Application.ScreenUpdating = True, tu le mets ou ?
qu'estce que ca fait si on l'oublie et que l'on revient sur la feuille ?

à tester mais il serait etonnant que cela ne fasse rien !


edit : et bien pas de reaction, on eut donc concidérer que remettre à true ne sert à rien, à moins que d'autres implications n'entre en compte
 
Dernière édition:
Re : Lancer une macro en tache de fond

hello will
le Application.ScreenUpdating = False j'ai pour habitude de le mettre au début de chaque macro. c'est juste pour ne pas ralentir les procédures.

ca n'a absoluement aucun effet sur ton code 😀 la macro s'execute normalement mais tu n'as pas l'affichage c'est tout.
si tu change de feuille, et bien à la fin de la macro l'affiche de la feuille qui doit etre affiché est affichée.

pour bien faire faudrais mettre
Application.ScreenUpdating = True à la fin de chaque macro mais bon... ca fait une ligne de plus.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour