Macro qui se déclenche automatiquement
Bonjour à tous !
J'aimerais savoir s'il est possible en vba qu'une macro tourne en permanence sans bouton de déclenchement, je m'explique :
j'ai un code qui permet de faire une petite animation (une flèche qui monte et descend) dès lors qu'une case de ma feuille n'est plus vide. J'aimerais que cette flèche monte et decend sans avoir à cliquer sur un bouton associé à cette macro mais juste lorsque qu'une valeur se met dans cette case (en tapant directement qqchse dans cette case, en faisant un copier_coller, en important un lien hyper, etc... peu importe la manière dont cette case se remplie...)
avez-vous une idée ? merci
Salut Amadeus,
Merci pour cette reponse mais je vois pas où est ligne de code permettant de faire tourner en continue ma macro d'animation ?
En gros, je souhaiterais voir mon image monter et descendre (j'ai deja mon code pour ca) automatiquement des lors que la cellule X se remplie sans avoir à cliquer sur un bouton.
Par rapport ca, je n'arrive pas très bien à voir comment je peux appliquer ton code au mien. Peux-tu m'éclairer !
merci encore
Bonjour
Dans le fichier, le Code est un Code de Feuille et la flêche se déplace en fonction de la cellule sélectionnée en colonne A
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Quand on clique n'importe où en colonne A, changer de colonne si besoin
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
' Positionne la flêche sur la ligne active
With ActiveSheet.Shapes("Flêche")
.Left = Columns("F").Left
.Top = ActiveCell.Top
.Visible = True
End With
End If
End SubCordialement
Merci beaucoup pour l'explication,
j'ai compris le code mais je n'arrive pas à le transposer à mon cas (et c'est pas un manque de volonté!
Je détaille ma problématique :
Ma première macro importe des liens hypertexte (via un formulaire). Ce formulaire nous amène à aller chercher les fichiers que je désire avoir en lien dans mon excel (ce sont des pistes audio). Donc je les sélectionne et je clique sur OK et tous les liens se mettent en colonne C à partir de la Cellule C7 :
Sub ListeDesDocDansDossier()
Liste.TextBox1.Value = 7
Liste.TextBox2.Value = 3
Liste.Show
N = Val(Liste.TextBox1.Value)
C = Val(Liste.TextBox2.Value)
Lien = Liste.CheckBox1.Value
FàOuvrir = Application.GetOpenFilename(, , , , True)
'N = 1
'C = 1
Num = 1
Do
On Error GoTo Fin
Cells(N, C).Value = FàOuvrir(Num)
If Lien = True Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(N, C), Address:=FàOuvrir(Num)
End If
Num = Num + 1
N = N + 1
Loop
Exit Sub
Fin:
'Range(Columns(C), Columns(C)).Select
Range(Cells(N - Num + 1, C), Cells(N - 1, C)).Select
Selection.Replace what:="*\", replacement:="", lookat:=xlPart, searchorder:=xlByRows, MatchCase:=False
Selection.Sort Key1:=Cells(N - Num + 1, C), Order1:=xlAscending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End
Resume
End SubJe voudrais que, lorsque je clique sur OK dans le formulaire de ma première macro, ma deuxieme se lance automatiquement, à savoir, une petite image monte et descend tout simplement parceque la cellule C7 s'est remplie... :
Sub animation()
Dim z
Dim zz
If Range("C7").Value <> "" Then
Sheets("Liste").Shapes("Picture 12").Left = 640
Sheets("Liste").Shapes("Picture 12").Top = 678
secondes = 0.01
For zz = 1 To 3
For z = 50 To 575 Step 50
timer_avant = Timer
Do While Timer < timer_avant + secondes
DoEvents
Loop
Sheets("Liste").Shapes("Picture 12").Top = 678 - z
Next
For z = 50 To 575 Step 50
timer_avant = Timer
Do While Timer < timer_avant + secondes
DoEvents
Loop
Sheets("Liste").Shapes("Picture 12").Top = 103 + z
Next
Next
Else
End If
End SubPouvez-vous me donner votre avis ? Désolé ca peut paraitre tordu, j'essaye d'etre le plus clair possible
j'ai eu ma reponse, il suffisait d'utliser un Call "macro" ... merci