Figer les volets, Incrément du scroll et sélection

Bonjour à tous,

Bon ça m'ennuie de poster une demande aussi bête mais je trouve pas de sujet sur le net pour répondre à ma question, comme si personne n'avait eut le soucis à part moi, à croire que je suis vraiment mauvais

Et c'est tellement pas évident à expliquer avec des mots que je vous ai fait 2 vidéos pour expliquer mon problème.

Alors, j'utilise sur un fichier l'outil "FIGER LES VOLETS" pour avoir une en-tête fixe et dérouler les lignes en dessous tout en gardant l'en-tête jusque là rien d'anormal.

Sauf que le scroll à une incrémentation de 3 lignes, donc par exemple dans la vidéo suivante, si je souhaite mettre la ligne 11 pile sous mon en-tête et bien c'est impossible.

Lien vidéo scroll

Donc déjà est-il possible de changer cet incrémentation sur la feuille voulu? j'ai cru voir que c'était possible en vba? ou alors une touche rapide qui permettrait en se positionnant sur la ligne de la remontée tout juste sous l'en-tête ... encore mieux !!

et second problème, une fois celui là résolu, et celui pour lequel je trouve vraiment rien.

c'est que une fois ma ligne bien positionnée sous mon en-tête je souhaite pouvoir faire une sélection de l'en-tête et des lignes visibles pour faire un copié-collé.

Sauf que, je démarre ma sélection sur l'en-tête et quand je descend et bien il me re-scroll tout mon tableau jusqu'au début.

Exemple dans la vidéo, je souhaite faire une sélection des en-têtes + lignes 13 à 18.

Lien vidéo sélection

y a t'il un bouton rapide genre alt+F5 pour figer toute la feuille le temps de sélectionner ?

bon bah finalement je contourne la probleme ^^

j'ai fais un code pour sélectionner mon en-tete puis la plage qui va de ma cellule active à la dernière ligne non vide.

je mettrais juste un bouton pour lancer la macro, j'aurais juste à me positionner sur la ligne a laquelle je veux que ma sélection commence

Sub SelecMultiPlage()

Dim Plage1 As Range, Plage2 As Range

Dim Unionplage As Range

pl = ActiveCell.Row
dl = Cells(Rows.Count, 1).End(xlUp).Row

Set Plage1 = Range("A1:G3")

Set Plage2 = Range("A" & pl & ":G" & dl)

Set Unionplage = Union(Plage1, Plage2)

Unionplage.Copy

End Sub

Heu en fait j'ai un petit soucis avec ma macro.

Elle me copie bien mon en-tête puis la sélection voulue, si je colle via "CTRL+V" dans une feuille à coté le résultat est bon !

par contre si je colle dans un fichier WORD, ou un mail ou tout autre support que excel il me recopie tout le tableau !

Je vous joint le fichier,

Positionnez vous sur la ligne 14 par exemple, cliquer sur le bouton "copier le tableau" aller en feuille 2 faire un CTRL+V

Le nouveau tableau est bien l'en-tête + ligne 14 à ligne 18

refaite la même manip mais avec un CTRL+V dans word le tableau entier est collé

je ne comprends pas du tout ce qui se passe

Bonjour

Un essai à tester. Te convient-il ?

11classeur1-v1.xlsm (23.77 Ko)
Option Explicit

Dim plage As Range
Dim ln&, rep&, derCol&, derLn&

Sub Scroller()

ln = Range("K2")
derCol = Range("A2").End(xlToRight).Column
ActiveWindow.ScrollRow = ln
End Sub

Sub CopierColler()

rep = MsgBox("Vous allez coller la partie visible du tableau à partir de la ligne active. OK ?", 20)
If rep = 7 Then Exit Sub
ln = Range("K2")
derCol = Range("A2").End(xlToRight).Column
derLn = Range("A" & Rows.Count).End(xlUp).Row
Set plage = Union(Range(Cells(1, 1), Cells(3, derCol)), Range(Cells(ln, 1), Cells(derLn, derCol)))
plage.Copy ActiveCell
End Sub

Bye !

Salut GMB, Merci pour ta réponse !

intéressant cette macro ou tu entres le numéro de ligne avec scroll automatique ! bien trouvé ! je le garde de coté ça pourrait peut-être servir.

il y à juste un inconvénient, avec le copier coller, c'est que en fait pour mon utilisation je veux juste "copier" dans le presse papier, pour coller dans un mail.

en fait la macro que j'avais fait répond à mon besoin mais quand je colle dans un autre support que excel, il me copie tous le tableau.

du coup j'ai contourné en faisant à peut près ce que tu a fait, en collant à coté, le résultat et en refaisant une copie de ce dernier, et la ça marche.

sauf que mon code est bien moins élaboré que le tiens !

La macro copie l'en-tete + la ligne qui correspond à la cellule active (l'utilisateur doit donc positionner son curseur sur la première ligne du tableau souhaité avant d'appuyer sur le bouton)

puis row.count de cette ligne jusqu'à la dernière non vide. et copie le tableau

(ma macro de base est celle-ci, quand tu colle dans excel, c'est bien le bon tableau qui sort, mais dans un mail, c'est tout le tableau ..)

donc je colle le résultat plus loin en Z en dur.

puis je resélectionne se tableau collé en dur pour en faire une copie seulement.

et là quand je colle dans un mail c'est bon, c'est bien le bon tableau qui sort.

Ps: au début j'avais pensé à coller l'étape intermédiaire dans une feuille caché, problème, si la feuille est cachée, la copie ne se fait pas, en essayant de coller le nouveau tableau dans un mail, cela me donne un résultat nul ! rien ne se colle.

si tu rends cette feuille visible alors la copie se fait bien et le collage se passe bien ...

du cout j'ai opté pour cacher la combine en colonne Z dans la même feuille, et pour éviter que l'utilisateur se retrouve en colonne Z, j'ai mis un scroll horizontal vers la gauche dans la macro pour revenir sur la liste.

Une autre version

17classeur1-v2.xlsm (23.89 Ko)
Option Explicit

Dim plage As Range
Dim ln&, rep&, derCol&, derLn&

Sub Scroller()

    ln = Range("K2")
    derCol = Range("A2").End(xlToRight).Column
    ActiveWindow.ScrollRow = ln
    Call CopierColler
End Sub

Sub CopierColler()

    ln = Range("K2")
    derCol = Range("A2").End(xlToRight).Column
    derLn = Range("A" & Rows.Count).End(xlUp).Row
    Set plage = Union(Range(Cells(1, 1), Cells(3, derCol)), Range(Cells(ln, 1), Cells(derLn, derCol)))
    Range(Columns(derCol + 5), Columns(derCol + derCol + 4)).Clear
    plage.Copy Cells(ln, derCol + 5)
    Range(Cells(ln, derCol + 5), Cells(derLn + 3, derCol + derCol + 4)).Copy
    Cells(ln, 1).Select
End Sub

Bye !

Rechercher des sujets similaires à "figer volets increment scroll selection"