Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Donner de l'effet a une action, est ce possible en VBA

  • Initiateur de la discussion Initiateur de la discussion satwaf
  • 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 !

satwaf

XLDnaute Occasionnel
bonjour a tous,

j'aimerai savoir si il est possible de passser la largeur d'une colonne de 1 à 100 par exemple mais en controlant le temps, c'est a dire que cela se fasse en 5sec par exemple pour passer de 1 à 100. etant donné qu'il y a un objet dans cette colonne, celui ci disparait de l'ecran doucement.
 
Re : Donner de l'effet a une action, est ce possible en VBA

Bonjour,

Une piste avec le code suivant

Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Const Delai& = 50   'réglez le délai en millisecondes

Sub aa()
Dim i&
'--- on agrandit ---
For i& = 1 To 100
  Sleep Delai&
  Columns("E:E").ColumnWidth = i&
Next i&
'--- on réduit ---
For i& = 100 To 1 Step -1
  Sleep Delai&
  Columns("E:E").ColumnWidth = i&
Next i&
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : Donner de l'effet a une action, est ce possible en VBA

Bonjour,

On peut aussi utiliser ceci :

Code:
Sub essai()
Do While Range("E:E").ColumnWidth > 0.1
    Range("E:E").ColumnWidth = Range("E:E").ColumnWidth - 0.5
Loop
End Sub

Pour modifier la vitesse il suffit de modifier le 0.5 (- ou + selon le sens)
Pour masquer complètement la colonne à la fin, il faut ajouter après LOOP :


Code:
Columns("E:E").Select
Selection.EntireColumn.Hidden = True

Cordialement
 
Re : Donner de l'effet a une action, est ce possible en VBA

Bonjour satwaf, PMO2, mécano41 ,
Sur l'idée de mécano41, on peux aussis travailler sur une forme automatique (rectangle):
VB:
Sub Reduire()
With ActiveSheet
Do While .Shapes("Barre").Width > 10
    .Shapes("Barre").Width = .Shapes("Barre").Width - 5
    Deb = Timer
    Do While Timer < Deb + 0.35
        i = 1 + 1
    Loop
    Application.ScreenUpdating = True
Loop
End With
End Sub

VB:
Sub Agrandir()
With ActiveSheet
Do While .Shapes("Barre").Width < 100
    .Shapes("Barre").Width = .Shapes("Barre").Width + 5
    Deb = Timer
    Do While Timer < Deb + 0.35
        i = 1 + 1
    Loop
    Application.ScreenUpdating = True
Loop
End With
End Sub
Cordialement
 

Pièces jointes

Re : Donner de l'effet a une action, est ce possible en VBA

merci a vous pour ces réponses , je vais pouvoir continuer mon petit fichier, heureusement qu'il y a des personnes comme vous qui nous viennent en aide..


encore merci
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…