XL 2021 Je voudrais "figé" mon écran après saisie des données

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 !

Patrick BRZ

XLDnaute Nouveau
Bonjour le Forum et merci à vous pour votre aide

Comme indiqué dans le titre, je souhaiterai pouvoir bloquer l'écran une fois le lancement de la macro qui me remet toujours à la ligne 1.

Je joins un fichier avec cette macro.

Avec mes remerciements
pATRICK
 

Pièces jointes

Hello,

la macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Application.ScreenUpdating = False
    If Target.Address = "$C$15" And Range("C15") <> "" Then
        For i = 3 To 500
            If Cells(i, 9) = "" Then        'colonne  date
                Cells(i, 9) = Date - 1
      
                Cells(i, 10) = Range("C6")
                Cells(i, 11) = Range("C9")
                Cells(i, 14) = Range("C13")
                Cells(i, 15) = Range("C15")
          
                Exit For
            End If
        Next i
    End If
    Application.ScreenUpdating = True
End Sub
n'a aucune instruction qui déplace le pointeur, ça doit être ailleurs
 
Hello,

la macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Application.ScreenUpdating = False
    If Target.Address = "$C$15" And Range("C15") <> "" Then
        For i = 3 To 500
            If Cells(i, 9) = "" Then        'colonne  date
                Cells(i, 9) = Date - 1
     
                Cells(i, 10) = Range("C6")
                Cells(i, 11) = Range("C9")
                Cells(i, 14) = Range("C13")
                Cells(i, 15) = Range("C15")
         
                Exit For
            End If
        Next i
    End If
    Application.ScreenUpdating = True
End Sub
n'a aucune instruction qui déplace le pointeur, ça doit être ailleurs
Re le forum bonjour nain porte quoi
Je me suis mal exprimé. le problème est : aujourd'hui j'ai rempli les cellule C6 à C15, sur la ligne 184. La cellule C15 envoie les données dans les cellules de la ligne 184 et, dès que ces données sont inscrites, mon écran scroolle (?) vers le haut jusque la ligne 1.
Demain je serai à la ligne suivante et ect...
Ma demande est, est-il possible d'ajouter dans la macro un ordre obligeant l'écran d'être immobile.
J'espère avoir été assez clair
Merci pour ton aide
Patrick
 
Bonjour,


C'est de l'eau qu'il faut boire en grande quantité par ces fortes chaleurs, pas du pinard ! 🤪
Bonjour,


C'est de l'eau qu'il faut boire en grande quantité par ces fortes chaleurs, pas du pinard ! 🤪
Bonjour le Forum et à vous tous.

a l'aide de ma macro, une fois les cellules C6 à C15 remplies, la ligne 184 (hier donc) de mon fichier se remplie (de données; pas d'un liquide).
dans les diverses cellules inscrites dans ma macro.
Ma demande :
Y a t-il une possibilité, par une formule ajoutée à ma macro, de laisser l'écran sur la ligne du jour (184 pour hier) et non pas qu'il déroule jusqu'à la première ligne.

J'espère que je ne te saoule pas trop. Moi avec mon nom, j'ai l'habitude Hic! Merci de ton soutien
Patrick
 
Y a t-il une possibilité, par une formule ajoutée à ma macro, de laisser l'écran sur la ligne du jour (184 pour hier) et non pas qu'il déroule jusqu'à la première ligne.
À cause de la chaleur déjà accablante, je ne peux pas allumer le PC pour tester, mais normalement tu peux afficher la partie que tu veux de ta feuille, non pas avec une formule bien sûr mais des instructions VBA.
 
À cause de la chaleur déjà accablante, je ne peux pas allumer le PC pour tester, mais normalement tu peux afficher la partie que tu veux de ta feuille, non pas avec une formule bien sûr mais des instructions VBA.
Re vous tous. Il n'y a pas de problème sur
À cause de la chaleur déjà accablante, je ne peux pas allumer le PC pour tester, mais normalement tu peux afficher la partie que tu veux de ta feuille, non pas avec une formule bien sûr mais des instructions VBA.
Re à tous
J'ai pris une partie de ce fichier. C'est celle qui me sert à entrer les données et où ensuite je dirige les résultats pour mes besoins.
J'espère que cela te suffira pour m'aider
En attendant je te remercie
Patrick
 

Pièces jointes

J'espère que cela te suffira pour m'aider
En attendant je te remercie
Je pense que c'est cathodique qui te donnera la solution.
En tout cas ce ne sera pas moi tant que je ne pourrai pas allumer mon PC pour voir comment est constitué ton classeur.

Comme cela a été dit plus haut, si tu ne fais pas de Select ou de Copy, l'affichage de ta feuille ne devrait pas bouger.

Mais tu parles de faire des saisies dans la colonne C, des lignes 6 à 15, et tu demandes à figer la feuille pour afficher la ligne 184... or je pense que si ta ligne 6 est affichée, la ligne 184 ne pas l'être en même temps (à moins que tu aies figé les volets sur les 15 premières lignes)..
Du coup il ne faudrait pas figer la feuille, mais au contraire scroller pour voir la ligne 184.

Tu peux essayer range("a184").select ou application.goto.range("a184"), mais dans les deux cas si tu codes en dur le numéro de ligne (ici 184) dans le code VBA, ça restera toujours sur cette ligne 184 et ne passera pas à la ligne suivante le lendemain.


Bref. Sans voir le classeur hein ne peux t'aider correctement. 😕
 
Dernière édition:
Je pense que c'est @cathodique qui te donnera la solution.
En tout cas ce ne sera pas moi tant que je ne pourrai pas allumer mon PC pour voir comment est constitué ton classeur.

Comme cela a été dit plus haut, si tu ne fais pas de Select ou de Copy, l'affichage de ta feuille ne devrait pas bouger.

Mais tu parles de faire des saisies dans la colonne C, des lignes 6 à 15, et tu demandes à figer la feuille pour afficher la ligne 184... or je pense que si ta ligne 6 est affichée, la ligne 184 ne pas l'être en même temps (à moins que tu aies figé les volets sur les 15 premières lignes)..
Du coup il ne faudrait pas figer la feuille, mais au contraire scroller pour voir la ligne 184.

Tu peux essayer range("a184").select ou application.goto.range("a184"), mais dans les deux cas si tu codes en dur le numéro de ligne (ici 184) dans le code VBA, ça restera toujours sur cette ligne 184 et ne passera pas à la ligne suivante le lendemain.


Bref. Sans voir le classeur hein ne peux t'aider correctement. 😕
Re tout le monde.
Il est exact que les 15 premières lignes sont figées. De cette manière, dans cet onglet je peux travailler pour alimenter les autres feuilles. Mais quand je retire "figer les volets", je dois aller à la ligne du jour (184 hier) pour que je puisse poursuivre mon travail.
Chez moi, il y a eu un orage tranquille qui a bien rafraichit la température.
En espérant te relire bientôt et merci
Patrick
 
Re vous tous. Il n'y a pas de problème sur

Re à tous
J'ai pris une partie de ce fichier. C'est celle qui me sert à entrer les données et où ensuite je dirige les résultats pour mes besoins.
J'espère que cela te suffira pour m'aider
En attendant je te remercie
Patrick
Si j'ai bien compris, tu veux afficher la dernière ligne.

Si c'est bien cela, @TooFatBoy t'as donné en partie la solution.

code à mettre dans le module de la feuille.
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dl As Long
   
    If Not Intersect(Target, ActiveSheet.Range("C6,C9,C12,C15")) Is Nothing Then
        ' Trouver la dernière ligne non vide dans la colonne I
        dl = ActiveSheet.Cells(ActiveSheet.Rows.Count, "I").End(xlUp).Row
       
        ' Faire défiler la feuille vers la dernière ligne non vide
        Application.Goto ActiveSheet.Cells(dernièreLigne, "I")
    End If
End Sub

Enfin, si j'ai bien compris la demande.

edit: le code s'execute au changement des cellules C6,C9,C12 et C15
 
- 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

Retour