bouton de remise en place de la selection au même endroit qu'à l'ouverture du fichier

pote

XLDnaute Nouveau
copier/coller du post de ce matin dans " autres forums que excel
Maintenant ça fonctionne.

Bonjour à tous,

Je poste ici, en effet, l'accès au forum excel ne fonctionne pas chez moi( aller retour entre une page
de mise à jour heure d'été et le forum) mais pas de possibilités de selection.

Ma recherche concerne un code qui associé à un bouton me permettrait dans chaque onglet du fichier de remettre la selection de cellule dans l'état du dernier enregistrement.

Mon fichier est un planning annuel réalisé en douze onglet, mais dont les dates ne sont pas du type " correcte" juste
des 1,2,3,4 ...Ce fichier s'ouvre toujours à l'onglet et la selection de cellules du dernier enregistrement avant fermeture
(ce qui me convient très bien) il s'agirait en un clic de replacer la ligne de selection sur la date dujour, même après modifications de certaines cellules.
Je pense que cette manip doit être très simple pour qui en à l'habitude, qu'il y a sûrement un meilleur moyen de gérer
un planning ( sur la base d'un "vrais" programme) mais je suis satisfait et sutrout habitué à celui ci.
Apparement de tout ce que j'ai lu comme codes personne n'utilise celà ( bizard !?!).

Merci pour votre aide pote.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonjour Pote et bienvenu, bonjour le forum,

Personnellement, j'ai rien compris à tes explications. Je pense qu'un petit fichier exemple indiquant ce que tu as avant et ce que tu voudrais après serait, comme toi, le bienvenu...
 

pote

XLDnaute Nouveau
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonjour Pote et bienvenu, bonjour le forum,

Personnellement, j'ai rien compris à tes explications. Je pense qu'un petit fichier exemple indiquant ce que tu as avant et ce que tu voudrais après serait, comme toi, le bienvenu...

Bonjour Robert, merci pour votre attention



En fait, en cliquant ce bouton il s’agit de remettre la même sélection de cellules en nombre et en position comme lors de l’ouverture du fichier (ce qui est sa position au dernier enregistrement).

Précision, la sélection est déjà conditionnée par :

Private Sub Worksheet_Change(ByVal Target As Range)
Set champ = [A2:T45]
If Not Intersect(champ, Target) Is Nothing And Target.Count = 1 Then
Cells(Target.Row + 1, 1).Resize(1, champ.Columns.Count).Select
Target.Offset(1, 0).Activate
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set champ = [A2:T45]
If Not Intersect(champ, Target) Is Nothing And Target.Count = 1 Then
Cells(Target.Row, 1).Resize(1, champ.Columns.Count).Select
Target.Activate
End If
End Sub
Ce qui agrandit la barre de sélection pour une meilleure lectur du tableau.


à plus Pote.
 

pote

XLDnaute Nouveau
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonjour à tous et bonjour Bernard,
C'est exactement ce que je voudrais faire en cliquant un bouton, et sans fermer excel, (selectionner la dernière ligne qui était selectionnee pour me souvenir de quel jour on était hier)
Précision: c'est donc hier que j'ai enregisté et fermé ce fichier pour la dernière fois.

Celà peut parraître bicornu comme façon de penser, mais c'est ce qu'il me faut pour
boucler la boucle informatique de mon petit cerveau.

@plus pote.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonjour Pote, Bernard (qui c'est celui-là), bonjour le forum,

On pourrait stocker les possitions des cellules actives à l'ouverture du classeur :
Code:
Private Sub Workbook_Open()
Dim i As Integer 'déclare la variable i (Incrément)

Application.ScreenUpdating = False 'masque les rafraîchissements d'eçran
ReDim ca(1 To Sheets.Count, 1) 'redimensionne le tableau de variables ca
For i = 1 To Sheets.Count 'boucle sur tous les onglets du classeur
    Sheets(i).Select 'sélectionne l'onglet de la boucle
    ca(i, 0) = Sheets(i).Name: ca(i, 1) = ActiveCell.Address
Next i 'prochain onglet de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
Ensuite la macro repos permet de repositionner les cellules actives de chaque onglet :
Code:
Public ca() As String 'déclare le tableau de variables ca (Cellules Actives)
Public Sub repos()

Application.ScreenUpdating = False 'masque les rafraîchissements d'eçran
For i = 1 To UBound(ca, 1) 'boucle sur tous les onglets du classeur
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    Sheets(ca(i, 0)).Select 'sélectionne l'onglet (génère une erreur si l'onglet a été supprimé)
    If Err <> 0 Then Err = 0: GoTo suite 'si une erreur a été générée, supprime l'erreur va à l'étiquette "suite"
    ActiveSheet.Range(ca(i, 1)).Select 'sélectionne la cellule indiquée dans la variable ca(i,1)
suite: 'étiquette
Next i 'prochain onglet de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
Le fichier :
 

Pièces jointes

  • Pote_v01.xls
    34.5 KB · Affichages: 33

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonjour mon Cher Pote Robert, et aussi Bonjour à Pote et au Forum ;)

Très chouette Robert, ça le fait !

Moi j'ai retenu ceci
il s'agirait en un clic de replacer la ligne de selection sur la date du jour, même après modifications de certaines cellules

Donc voici ma contribution ! Ca peut être une autre approche...

Bien à vous
@+Thierry

Edition
AH oui Bonjour à Bernard aussi LOL
 

Pièces jointes

  • Pote_v02.xls
    47.5 KB · Affichages: 49
Dernière édition:

pote

XLDnaute Nouveau
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Salut robert, maintenant je dis plus que salut....avec ce que tu me propose, je pense que l'ordi peut bien se tourner le doigt dans le c... pendant au moins une heure avant de faire un truc et on devine pas vraiment quoi?
Pourquoi ne propose tu pas la solution à ma question sur le forum plutôt que par message?

"Il peut y avoir eu d'autres réponses, mais vous ne recevrez pas de nouvelle notification avant votre prochaine visite du forum.

Cordialement,
L'équipe Excel Downloads Forums"

L'équipe en question ne trouverait elle pas ce code bizaroide pour répondre à la question posée ? à moins qu'elle ne le trouve ammusant pour un être de 52 ans d'age ou totalement incorecte


A voir...
Robert vient de répondre à une discussion à laquelle vous êtes abonné :
Forum : Forum Excel (sur Excel Downloads Forums)
Intitulé de la discussion : Excel 2002 (XP) bouton de remise en place de la selection au même endroit qu'à l'ouverture du fichier
On pourrait stocker les possitions des cellules actives à l'ouverture du classeur :
<div class="bbcode_container">
<div class="bbcode_description">Code :</div>
<div class="bbcode_code"><code><div class="" style="font-family:monospace;">Private Sub Workbook_Open()<br />
Dim i As Integer 'déclare la variable i (Incrément)<br />
<br />
Application.ScreenUpdating = False 'masque les rafraîchissements d'eçran<br />
ReDim ca(1 To Sheets.Count, 1) 'redimensionne le tableau de variables ca<br />
For i = 1 To Sheets.Count 'boucle sur tous les onglets du classeur<br />
&nbsp; &nbsp; Sheets(i).Select 'sélectionne l'onglet de la boucle<br />
&nbsp; &nbsp; ca(i, 0) = Sheets(i).Name: ca(i, 1) = ActiveCell.Address<br />
Next i 'prochain onglet de la boucle<br />
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran<br />
End Sub</div></code></div>
</div> Ensuite la macro *repos* permet de repositionner les cellules actives de chaque onglet :
<div class="bbcode_container">
<div class="bbcode_description">Code :</div>
<div class="bbcode_code"><code><div class="" style="font-family:monospace;">Public ca() As String 'déclare le tableau de variables ca (Cellules Actives)<br />
Public Sub repos()<br />
<br />
Application.ScreenUpdating = False 'masque les rafraîchissements d'eçran<br />
For i = 1 To UBound(ca, 1) 'boucle sur tous les onglets du classeur<br />
&nbsp; &nbsp; On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)<br />
&nbsp; &nbsp; Sheets(ca(i, 0)).Select 'sélectionne l'onglet (génère une erreur si l'onglet a été supprimé)<br />
&nbsp; &nbsp; If Err <> 0 Then Err = 0: GoTo suite 'si une erreur a été générée, supprime l'erreur va à l'étiquette "suite"<br />
&nbsp; &nbsp; ActiveSheet.Range(ca(i, 1)).Select 'sélectionne la cellule indiquée dans la variable ca(i,1)<br />
suite: 'étiquette<br />
Next i 'prochain onglet de la boucle<br />
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran<br />
End Sub</div></code></div>
</div> Le fichier :

***************
Merci quand même @plus
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonsoir Pote,


Tu es actuellement sur le Forum publique, je ne sais pas quel problème tu as pour croire que tu es en messagerie ?

@+Thierry

PS et le code que te propose Robert fait EXACTEMENT Ce que tu demandes, mais c'est vrai que c'est compliqué à comprendre.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonsoir Pote, Bernard, Thierry, bonsoir le forum,

@Pote, tu prends quoi comme drogue(s) ? Je veux absolument goûter ça... Tu me l'envoies par mail perso hein...

@Thierry, l'est pas fada celui-là ?
 
Dernière édition:

Eric C

XLDnaute Barbatruc
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Bonsoir le forum
Bonsoir pote, Robert, _Thierry & bien sur Bernard (le grand nanard qui brille par son absence)

Je ne ferai pas avancer le schmilblink sur ce post mais je suis ravi de l'avoir lu. Que du bonheur.
Bonne soirée à vous tous
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : bouton de remise en place de la selection au même endroit qu'à l'ouverture du fi

Salut à toi mon cher Eric, toi t'es un pote !

Vaut mieux rigoler, hein :eek:

BIen à Toi
@+Thierry

PS
en fait on fait une sacrée fine
équipe !
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 365
Membres
103 528
dernier inscrit
maro