Excel défilement automatique

Résolu
sofienexcel Messages postés 72 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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. lanetmel Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   4
     
    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
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. sofienexcel Messages postés 72 Statut Membre
       
      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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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. sofienexcel Messages postés 72 Statut Membre
       
      Merci mais pouvez vous m'aider comment ajouter la protection / déprotection dans un tel code
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. sofienexcel Messages postés 72 Statut Membre
       
      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
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Chez moi cela fonctionne à l'ouverture du classeur!

    Le principal c'est que ça fonctionne pour toi

    0