Excel défilement automatique

Résolu
Bonjour,

je suis nouveau sur vba, Je souhaite que le contenu d'une cellule défile horizontalement et automatiquement dès l'ouverture de mon fichier, j'ai trouvé un code vba mais il nécessite un clic sur bouton pour ce lancer et ce n'est pas pratique pour mon cas

Merci tous pour vos aides habituelles

4 réponses

  1. Tu n'as pas nécessairement à le mettre sur un bouton. Je ne suis pas experte mais si tu mets le code dans ThisWorkbook
    sub Workbook_open ()
    ton code
    end sub
    ça se fera automatiquement à l'ouverture
    0
    1. Contributeur
      Bonjour,

      Mettre ceci dans un module:

      Sub auto_open()
       t = "ceci est texte défilant dans une cellule......"
       n = 0
       Do While n < 500
        t = Right(t, 1) & Left(t, Len(t) - 1)
        [A1] = t
         w = 0.2
         temp = Timer
         Do While Timer < temp + w
            DoEvents
         Loop
         n = n + 1
       Loop
      End Sub
      
      


      https://www.excel-downloads.com/threads/defiler-un-petit-texte-dans-une-cellule.98252/
      0
      1. Merci, mais ca n'a pas fonctionné à l'ouverture, je dois rafraichir le code avec f5 pour que ca fonctionne, il est à noter que ma feuille est protegée.
        Merci cs le Pivert
        0
      2. Contributeur
        Si ta feuille est protégée, il est normal que cela ne fonctionne pas. Déprotège ta feuille au début de la macro auto_open et ensuite à la fin de la macro auto_open protège la à nouveau.
        0
      3. Merci mais pouvez vous m'aider comment ajouter la protection / déprotection dans un tel code
        0
    2. Contributeur
      J'attendais ta réponse!

      Voilà:

      Option Explicit
      Sub auto_open()
      Dim t, n, w, temp
       Déprotégertouslesongletsenmêmetemps
        t = "ceci est texte défilant dans une cellule......"
        n = 0
        Do While n < 50 'durée a adapter
         t = Right(t, 1) & Left(t, Len(t) - 1)
         [A1] = t
          w = 0.2
          temp = Timer
          Do While Timer < temp + w
             DoEvents
          Loop
          n = n + 1
        Loop
        Protegertouslesongletsenmêmetemps
       End Sub
      Sub Protegertouslesongletsenmêmetemps()
      ' Protection automatique de toutes les feuilles d'un classeur
      Dim Motdepasse As String
      Dim wSheet As Worksheet
      'Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "*****")
      Motdepasse = "*****" 'mot de passe à adapter
      If Motdepasse = "" Then Exit Sub
      For Each wSheet In Worksheets
       wSheet.Protect Password:=Motdepasse, _
              UserInterFaceOnly:=True, _
         DrawingObjects:=False, Contents:=True, Scenarios:= _
              False, AllowFiltering:=True
      Next wSheet
      End Sub
      Sub Déprotégertouslesongletsenmêmetemps()
      ' Déprotection automatique de toutes les feuilles d'un classeur
      Dim wSheet As Worksheet
      Dim Motdepasse As String
      'Motdepasse = InputBox("Entrer le mot de passe :", "Oter la protection de toutes les feuilles", "*****")
      Motdepasse = "*****" 'mot de passe à adapter
      If Motdepasse = "" Then Exit Sub
      On Error Resume Next
      For Each wSheet In Worksheets
       wSheet.Unprotect Password:=Motdepasse
      Next wSheet
      End Sub
      

      0
      1. Merci Infiniment le Pivert, mais le code ne fonctionne qu'après éxécution et non à l'ouverture. les macros sont activés: voici le code que j'ai mis après adaptation:
        Sub auto_open()
        Application.DisplayFullScreen = True
        Dim t, n, w, temp
        Déprotégertouslesongletsenmêmetemps
        t = "...Bulletin de Suivi 2015..."
        n = 0
        Do While n < 50 'durée a adapter
        t = Right(t, 1) & Left(t, Len(t) - 1)
        [D5] = t
        w = 0.2
        temp = Timer
        Do While Timer < temp + w
        DoEvents
        Loop
        n = n + 1
        Loop
        Protegertouslesongletsenmêmetemps
        End Sub
        Sub Protegertouslesongletsenmêmetemps()
        ' Protection automatique de toutes les feuilles d'un classeur
        Dim Motdepasse As String
        Dim wSheet As Worksheet
        'Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "aaa")
        Motdepasse = "aaa" 'mot de passe à adapter
        If Motdepasse = "" Then Exit Sub
        For Each wSheet In Worksheets
        wSheet.Protect Password:=Motdepasse, _
        UserInterFaceOnly:=True, _
        DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFiltering:=True
        Next wSheet
        End Sub
        Sub Déprotégertouslesongletsenmêmetemps()
        ' Déprotection automatique de toutes les feuilles d'un classeur
        Dim wSheet As Worksheet
        Dim Motdepasse As String
        'Motdepasse = InputBox("Entrer le mot de passe :", "Oter la protection de toutes les feuilles", "aaa")
        Motdepasse = "aaa" 'mot de passe à adapter
        If Motdepasse = "" Then Exit Sub
        On Error Resume Next
        For Each wSheet In Worksheets
        wSheet.Unprotect Password:=Motdepasse
        Next wSheet
        End Sub
        0
    3. Contributeur
      Chez moi cela fonctionne à l'ouverture du classeur!

      Le principal c'est que ça fonctionne pour toi

      0