IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fonction ActiveWindow.SmallScroll / ActiveWindow.ScrollColumn [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut Fonction ActiveWindow.SmallScroll / ActiveWindow.ScrollColumn

    Bonsoir
    J'ai un tableau structuré, sur lequel j'ai figé la ligne d’entête dans lequel j'ai crée plusieurs macros.

    • 1. Ajouter une ligne en fin de tableau en utilisant un bouton


    Je clique une première fois sur le bouton et une ligne est créé en ligne 31 (dernière ligne de mon tableau) (Image1) Nom : Image 1.PNG
Affichages : 2189
Taille : 83,8 Ko. Je suis sur ma ligne et je la complète. Je souhaite rajouter une ligne en ligne 32, tout en utilisant le bouton. La ligne se crée bien en ligne 32, par contre à l'affichage, je suis sur la ligne 43 (Image2)Nom : Image 2.PNG
Affichages : 2145
Taille : 30,4 Ko
    Avez vous une idée de ce qui ne va pas dans mon code

    Code Ajouter une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub AjouterLigne()
        ' Aller à la dernière cellule du tableau
            Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(0, 17).Select
        ' Ajouter une ligne
            SELECTION.ListObject.ListRows.Add AlwaysInsert:=False
        'Revenir colonne 1
            ActiveWindow.ScrollColumn = 1
        'Aller à la première cellule à compléter du tableau
            Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(0, 1).Select
        'Aller à la dernière ligne du tableau
            ActiveWindow.SmallScroll Down:=18
    End Sub
    • 2. Aller à la fin du tableau ou au début du tableau


    J'ai le meme problème dans les deux codes suivants, à savoir j'arrive bien à aller où je souhaite, par contre je pense que j'ai un souci dans l'utilisation des codes ActiveWindow.ScrollColumn, ActiveWindow.SmallScroll Down: , ActiveWindow.SmallScroll Up: et enfin ActiveWindow.SmallScroll ToRight. Ce qui fait que cela ne fonctionne pas tout à fait et que je n'arrive pas à revenir au bon endroit. En effet, il faudrait que je puisse donner un point de départ ou de fin sans préciser un chiffre exact, puisqu'il changera automatiquement en fonction du rajout de ligne. (est-ce tjs un pb lié à la ligne figée)

    Code début de tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DebutTableau()
         'Revenir colonne 1
            ActiveWindow.ScrollColumn = 1
        'Revenir cellule A6
            Range("A6").Select
      End Sub
    Code fin de tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub FinTableau()
         'Aller à la dernière cellule du tableau
            Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(0, 17).Select
        'Aller à la dernière ligne du tableau
            ActiveWindow.SmallScroll Down:=18
        'Aller à la dernière colonne du tableau
            ActiveWindow.ScrollColumn = 17
      End Sub
    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 232
    Points : 5 632
    Points
    5 632
    Par défaut
    Bonjour,

    Ceci pourrait vous aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AjouterLigne()
        ' Ajouter une ligne
        Cells(1, 1).ListObject.ListRows.Add AlwaysInsert:=False
        'détermine quelle est la dernière ligne
        DerLig = Cells(1, 1).ListObject.ListRows.Count
        'Aller à la première cellule à compléter du tableau
        ActiveWindow.ScrollColumn = 1 'va à la première colonne
        ActiveWindow.ScrollRow = DerLig + 1 'va à la ligne ajouté
        'Aller à la première cellule à compléter du tableau, ici en colonne A de la nouvelle ligne
        Cells(DerLig + 1, 1).Select
    End Sub
    Cdlt

  3. #3
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Je vous remercie, mais le code

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 232
    Points : 5 632
    Points
    5 632
    Par défaut
    Bonjour,

    Envoyé par Kaytilou
    Je vous remercie, mais le code
    Réponse d'ARTURO83


    Plus sérieusement, que dois-je comprendre?

    Cdlt

  5. #5
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Réponse d'ARTURO83


    Plus sérieusement, que dois-je comprendre?

    Cdlt
    Bonujour Arturo83

    Lorsque je lance la macro, cela bug dès la premiere ligne de commande, je ne sais pq Cells(1, 1).ListObject.ListRows.Add AlwaysInsert:=False
    D'autre part, DerLig ne devrait-il pas être une variable à déclarer. Je ne m'y connais pas assez pour comment tout le code et voir pq cela bug.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AjouterLigne()
        ' Ajouter une ligne
        Cells(1, 1).ListObject.ListRows.Add AlwaysInsert:=False
        'détermine quelle est la dernière ligne
        DerLig = Cells(1, 1).ListObject.ListRows.Count
        'Aller à la première cellule à compléter du tableau
        ActiveWindow.ScrollColumn = 1 'va à la première colonne
        ActiveWindow.ScrollRow = DerLig + 1 'va à la ligne ajouté
        'Aller à la première cellule à compléter du tableau, ici en colonne A de la nouvelle ligne
        Cells(DerLig + 1, 1).Select
    End Sub
    Merci à vous et très belle semaine

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 729
    Points : 28 555
    Points
    28 555
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Lorsque je lance la macro, cela bug dès la premiere ligne de commande, je ne sais pq Cells(1, 1).ListObject.ListRows.Add AlwaysInsert:=False
    Pour connaître la dernière ligne des données d'un tableau structuré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Dim oLst As ListObject
      Dim LastRow As Long
      Set oLst = Range("Tableau1").ListObject
      LastRow = oLst.DataBodyRange.Rows.Count
      Debug.Print LastRow
    D'autre part, DerLig ne devrait-il pas être une variable à déclarer
    Il est indispensable de déclarer toutes les variables. Ne pas le faire n'est pas professionnel

    Je conseille la lecture de Utiliser les variables en VBA Excel et tout particulièrement le chapitre III. Option Explicit
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 232
    Points : 5 632
    Points
    5 632
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lorsque je lance la macro, cela bug dès la premiere ligne de commande, je ne sais pq Cells(1, 1).ListObject.ListRows.Add AlwaysInsert:=False
    C'est parce que je suis parti de la ligne 1, alors que votre tableau commence à la ligne 6. Pour la variable, c'est un oubli.
    correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub AjouterLigne()
        Dim DerLig     As Long
        ' Ajouter une ligne
        Cells(6, 1).ListObject.ListRows.Add AlwaysInsert:=False
        'détermine quelle est la dernière ligne
        DerLig = Cells(6, 1).ListObject.ListRows.Count
        'Aller à la première cellule à compléter du tableau
        ActiveWindow.ScrollColumn = 1 'va à la première colonne
        ActiveWindow.ScrollRow = DerLig + 1 'va à la ligne ajouté
        'Aller à la première cellule à compléter du tableau, ici en colonne A de la nouvelle ligne
        Cells(DerLig + 1, 1).Select
    End Sub
    Cdlt

  8. #8
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Bonjour, ARTURO83
    Merci et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Donner a ActiveWindow.Zoom = Valeur de cellule
    Par Gillou55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2019, 20h07
  2. FreezePanes sans ActiveWindow
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/10/2018, 09h43
  3. InternetExplorer.Application / ActiveWindows
    Par ptimos93800 dans le forum VBScript
    Réponses: 1
    Dernier message: 30/04/2009, 15h48
  4. Sélectionner une acétate et ActiveWindow.Selection.Type
    Par Ross_33 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 16/01/2008, 22h09
  5. fonction ActiveWindow.Name erreur objet requis
    Par Davik dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/02/2007, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo