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

Microsoft 365 Fonction VBA ActiveWindow.SmallScroll / ActiveWindow.ScrollColumn /

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

Kaytilou

XLDnaute Nouveau
Bonjour, je me lance dans ma première discussion. Tout d'abord Joyeuse Pâques confinée à tous en espérant que vous allez tous bien ainsi que vos proches.
Je ne suis pas une experte, mais pas tout à fait novice dans la création de code VBA. J'ai créé le code suivant, mais je n'arrive pas tout à fait à utiliser les fonctions ActiveWindow.SmallScroll / ActiveWindow.ScrollColumn.
Mon tableau fait 1000 lignes et je souhaite, dès que j'insère une nouvelle ligne (Bouton Ajouter une ligne avec le code suivant), quelque soit l'endroit ou je me trouve dans le tableau (tableau structuré avec ligne d'entête figée) pouvoir aller à la ligne ajoutée et à la première colonne, pour aller compléter la première cellule du tableau.
Voici mon code (sans doute erreur au niveau en indiquant un numéro de ligne ActiveWindow.SmallScroll Down:=18)

VB:
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

Je retrouve un peu le meme problème dans la macro Fin du tableau pour aller à la dernière cellule du tableau avec le code suivant

Code Début du tableau
Code:
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

J’insère le fichier si besoin. Les macros se trouvent dans le module 2
Je vous remercie pour votre aide et vous souhaite une agréable journée
 

Pièces jointes

Bonjour,

Dans le fichier joint modification de votre macro :
VB:
Sub AjouterLigne()
    With Sheets("Base de données").ListObjects("Listing")
        .ListRows.Add AlwaysInsert:=False
        Application.Goto .ListRows.Item(.ListRows.Count).Range, True ' ou false pour ne par remonter le tableau
    End With
End Sub

toute la ligne est sélectionnée avec la première cellule active.

si vous ne voulez sélectionner que la première cellule : Application.Goto .ListRows.Item(.ListRows.Count).Range(1)

Je vous laisse le soin d'explorer les possibilités d' Application.Goto et des objets .ListRows pour vous déplacer en fin de tableau.

Cordialement
 

Pièces jointes

Bonjour Kaytilou (Bienvenue sur le forum)

Pour éclairer ta lanterne 😉
VB:
Sub test()
'NL= nouvelle ligne
Dim LO As ListObject, mess$
Set LO = ActiveSheet.ListObjects(1)
With LO.ListRows.Add
    mess = mess & .Range.Address & Chr(13) 'adresse NL
    mess = mess & .Range(1, 1).Address & Chr(13) ' adresse 1ère cellule NL
    mess = mess & .Range(1, 1).Row & Chr(13) 'N° Ligne NL
    mess = mess & .Range(1, LO.DataBodyRange.Columns.Count).Column 'N° colonne NL
End With
MsgBox mess
End Sub

EDITION: Houps, pas rafraîchi à temps!
Bonjour Roblochon 😉
 

Bonjour Roblochon, je vous remercie et je vais aller étudier cela de plus près. Auriez vous aussi une astuce pour la deuxième macro Fin du tableau pour aller à la dernière cellule du tableau avec le code suivant. Je pense que j'ai un souci avec la fonction ActiveWindow.SmallScroll Down:=18
VB:
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 à vous
 
Re,


Il faut non seulement lire les réponses entièrement, mais le fil également....

Je vous disais :
Je vous laisse le soin d'explorer les possibilités d' Application.Goto et des objets .ListRows pour vous déplacer en fin de tableau.
Or visiblement vous n'avez rien tenté...

et mon ami @Staple1600 vous a fait un exercice de test qui vous sera précieux si vous daignez l'examiner.

Bonne étude
 
Re

•>Roblochon
Pigé!
ADD=Attestation de Déplacement Dérogatoire
Ah le neurone confiné, c'est comme le lait de soja non réfrigéré
Cela fermente et c'est dangereux!
1) pour le sol de la cuisine
2) pour capter dans la seconde ce qu'on lit
😉
 

Bonsoir Staple1600
Désolée, je ne voulais pas être impolie et bien sur merci pour votre aide. Je teste petit à petit, donc j'ai commencé par la réponse de Roblochon avant de tester la votre
J'y vais de ce pas 🙂 merci à vous et très bonne fin de journée
 
Bonsoir Roblochon, comme je vous le disais, je suis ni experte, ni novice. Je vais pas à pas et je m'en vais d'ici là explorer les possibilités d' Application.Goto et des objets .ListRows. Merci à vous
 
- 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

Réponses
17
Affichages
1 K
Réponses
4
Affichages
439
Réponses
3
Affichages
265
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…