Macro pour déplacement colonne avec barre de fractionnement

chrisnapoli Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   -  
chrisnapoli Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrais améliorer mes macros que j'ai faite par l'enregistreur VBA Excel
j'ai ma feuille Excel avec en vertical la barre de fractionnement qui s'arrête à la colonne CZ (comprise),en Horizontal ma barre de fractionnement s'arrête a la ligne 11(comprise)
je voudrais qu'avec deux boutons de Macros (voir peut être un si c'est réalisable )
garder ma position a gauche en CZ vertical et ligne 11 horizontal , mais que du cote droit je me retrouve en un clic sur mon bouton en position vertical en DN juste après CZ et toujours en ligne11,un deuxième clic sur mon bouton et me retrouver en vertical en position DA juste après CZ
si ce n'est pas réalisable avec un seul bouton pas de problème avec deux ,je m'en contenterai
je rencontre des problèmes lorsque je met mes macros en route dans le cas ou j'oublie de cliquer sur la partie droite avant d'appuyer sur le bouton' ca part dans l(autre sens mais peut être est ce normal)
je mets ci dessous les deux macros que j'ai faite avec l'enregistreur

Sub Graphe()
'
' Graphe Macro
'

'
Range("DO41").Select
ActiveWindow.LargeScroll ToRight:=-1
ActiveWindow.SmallScroll ToRight:=-2
Range("DG32").Select
End Sub

Sub Préouverture()
'
' Préouverture Macro
'

'
Range("DI43").Select
ActiveWindow.LargeScroll ToRight:=1
ActiveWindow.SmallScroll ToRight:=2
Range("DQ53").Select
End Sub

Merci pour votre aide
Cordialement CN



A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Avec ce que j'ai compris de ton souhait, cette macro avec un seul bouton :
Public Sub positionnement()
If ActiveCell.Address = "$CZ$11" Then
    Range("$DN$11").Select
ElseIf ActiveCell.Address = "$DN$11" Then
    Range("$DA$11").Select
Else
    Range("$CZ$11").Select
End If
End Sub

Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
0
chrisnapoli Messages postés 134 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
je viens d'essayer la macro et je pense que je me suis mal expliqué
en fait votre macro déplace les lignes dans le sens haut bas bas haut(en horizontal)
moi ce que je souhaite, c'est un déplacement dans le sens vertical
je m'explique
les deux barres de fractionnement reste toujours positionné comme je vous l'ai dit en CZ(compris) pour la première et en ligne 11(compris) pour la deuxième;si l'on considère que la position de la colonne après la barre de fractionnement est en est en DA je veux que en appuyant une fois sur le bouton je me retrouve avec DN a la place de DA( comme si javais cliqué tout en bas a droite sur la barre horizontale pour faire arriver ma colonne DN
ce qui donne sur le tableau CZ puis la barre de fractionnement puis DN DO DP...etc
un deuxième clic sur le bouton doit me ramener a la position initiale (en DA a droite de la barre de fractionnement juste après CZ)
EN fait si le changement se fait dans le sens vertical aucun changement ne doit se faire dans le sens horizontal(la barre de fractionnement restant fige aussi bien en position CZ que en position ligne 11) j'espère avoir été compris
si vous me trouvez la solution peut on imaginer sur le même principe plusieurs boutons sur la feuille pour aller a différentes positions dans ma feuille et doit on mettre chaque macro dans un seul ou plusieurs
modules différents

Merci de votre aide Cordialement Christian
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Re
Tu avais mis : toujours en ligne11
Maintenant tu parles de colonnes et uniquement vertical, c'est sans doute clair pour toi mais je reste perplexe...
Tu peux avoir un "bouton" mobile qui se déplace et te permette de choisir la destination mais il faudrait comprendre ce que tu veux comme résultat.
0
chrisnapoli Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   > gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour
avec le fichier vous allez de suite comprendre
https://www.cjoint.com/?3EsoLvkszvN
Merci
0
chrisnapoli Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   > gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention  
 
re
je voulais vous demander également si vous connaissez la modification rectificative afin que dans ce code en dessous ;dans la plage NN12:NN251, il ne soit pris en compte qu'une cellule sur deux et que la procédure clearcontents soit annulée(que mes lignes ou il y a des formules ne soient pas effacées,et que je puisse récupérer l'historique des cotations a la fermeture du classeur afin de pouvoir les coller ailleurs)
j"ai des formules écrites de NY12 à PB 251 en ligne 12 14 16 18
..etc jusque 250
;seules les lignes 13 15 17 19..etc jusqu'a 251 sont remplies de chiffres.
actuellement des que le Timer se met en route il m'écrase ces formules parce qu'il prend en compte toutes les cellules contenues dans la plage sans exception( donc je me retrouve avec seulement les chiffres en mode valeur ce qui est normal, mais les formules contenues dans les lignes cités ci dessus ont disparus
Merci de m'indiquer si vous savez une solution simple.
Bonne journée


dans thisworkbook

Option Explicit

Private Sub Workbook_Open()
Sheets("statist").Select
c = 389
Application.OnTime TimeValue("09:01:00"), Procedure:="RecupCotation" '"09:01:00"
Range("NY12:QL251").ClearContents
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ArretCotation
End Sub

dans module 1

Sub RecupCotation()
Durée = Now + TimeValue("00:01:00")
Application.OnTime Durée, "RecupCotation"
Range(Cells(12, c), Cells(251, c)) = Range("NN12:NN251").Value
c = c + 1
If c >= 419 Then ArretCotation 'N° de la dernière colonne
End Sub


Sub ArretCotation()
On Error Resume Next
Application.OnTime Durée, "RecupCotation", , False
End Sub
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonsoir

que la procédure clearcontents soit annulée
Il te suffit de mettre un apostrophe devant
 'Range("NY12:QL251").ClearContents 
et elle va passer en vert.

Merci de m'indiquer si vous savez une solution simple
Il faut mettre tes formules dans une autre plage car la Procedure:="RecupCotation" ne peut pas être bridée.

avec le fichier vous allez de suite comprendre
C'est pas gagné, je ne vois pas le cheminement du fonctionnement. quand vous cliquerez sur le bouton graphe pas facile il est disparu, il faut jouer avec les ascenseurs pour le retrouver.
0