IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

contenu de mon écran


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut contenu de mon écran
    Bonjour à tous.

    J'aimerai savoir s'il existe une instruction qui permet de retourner la référence de la cellule en haut à gauche de ma plage affichée sur l'écran, et une autre pour retourner celle en bas à gauche.

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je suppose que tu veux dire "Feuille de calcul" et non "plage"
    Commence par voir la première visible en haut et à gauche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ActiveWindow.ScrollRow & "  " & ActiveWindow.ScrollColumn
    Edit : maintenant que tu sais qu'il s'agit là de membres de l'objet ActiveWindow, je te laisse le soin de faire comme moi --->>
    Réflexe --->> ActiveWindow est un objet Window ? -->> Amen --->>ouverture de mon aide interne VBA à la rubrique Window, objet -->> un click sur Membres de l'objet Window -->> je lis tous les membres car j'ignore si l'un d'entre eux peut me retourner l'adresse de la plage visible à l'écran --->>
    J'ai de la chance : je vois qu'existe une propriété VisibleRange dp,t le nom est suffisamment évocateur -->> je clique dessus --->> Window.Visible, propriété --->> Ah ! C'est bien cela --->> je l'essaye donc --->>
    MsgBox ActiveWindow.VisibleRange.Address
    Hé oui ! C'est bien cela.
    Apprends le plus vite possible à faire comme moi.

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ActiveWindow.VisibleRange.Cells(1).Address 'donne l'addresse de la premiere cellule visible en haut a gauche
    pour celle d'en bas c'est un peu plus compliqué a partir du moment ou en vois une parti (meme incomplete) elle est considérée comme visible
    mettre -2 a la place de -1 si il faut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    With ActiveWindow.VisibleRange
    MsgBox .Cells(1).Address 'donne l'addresse de la premiere cellule visible en haut a gauche
    MsgBox .Cells(1).Offset(.Rows.Count - 1, .Column).Address 'donne l'addresse de la derniere cellule visible en bas a gauche
    End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    Unparia : j'essaie toujours, mais je suis souvent paumé avec l'aide Microsoft, qui est à peu près tout, sauf facile.

    Patricktoulon. J'ai testé ton code, que j'ai un peu modifié, mais sans en changer le réel contenu. et j'ai un petit problème. Tant que ma cellule en haut à gauche est A1, tout va bien, comme on peut le voir sur la première image
    Nom : img1.jpg
Affichages : 401
Taille : 83,4 Ko
    Par contre, lorsque je me déplace dans ma feuille de calcul, le résultat affiché reste le même.
    Nom : img2.jpg
Affichages : 382
Taille : 85,8 Ko
    J'ai donc mixé vos deux réponses, pour arriver à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    P_Ligne = ActiveWindow.ScrollRow
    P_Colonne = ActiveWindow.ScrollColumn
    D_ligne = P_Ligne + Cells(1).Offset(ActiveWindow.VisibleRange.Rows.Count - 1, ActiveWindow.VisibleRange.Columns.Count - 1).Row
    D_Colonne = P_Colonne + Cells(1).Offset(ActiveWindow.VisibleRange.Rows.Count - 1, ActiveWindow.VisibleRange.Columns.Count - 1).Column
    Qui semble donner les résultats escomptés.

    Un grand merci à vous deux.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    le poisson dont je ne vois que la tête est un poisson visible.
    Je ne vois nulle part l'adverbe "entièrement" dans le message du demandeur.

    Quant au reste --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    toto = Split(Replace(ActiveWindow.VisibleRange.Address, ":", ""), "$")
    MsgBox "en haut à gauche : " & toto(1) & toto(2) & vbCrLf & _
    "en haut à droite : " & toto(3) & toto(2) & vbCrLf & _
    "en bas à gauche : " & toto(1) & toto(4) & vbCrLf & _
    "en bas à droite : " & toto(3) & toto(4)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    @unparia.

    Wow ! ok, ca, c'est effectivement une réponse exhaustive, et extrêmement élégante (beaucoup plus que la mienne, il faut l'avouer). Le seul souci, c'est que là, même avec l'aide Windows, je ne comprend pas ce que fait ton code. On est très clairement au delà de mes compétences. Je suis jaloux.

    Encore merci pour ton aide (je vais quand même essayer de comprendre ce toto, parce que c'est vraiment beau, comme solution).

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    je ne comprend pas ce que fait ton code.
    Tu le comprendras en faisant ces tout-petites expériences :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim titi As String
    titi = Range("C2:D4").Address
    MsgBox titi ' --->> tu obtiens la chaîne de caractères "$C$2:$D$4"
    titi = Replace(titi, ":", "")
    MsgBox titi '---->> tu obtiens la chaîne de caractères "$C$2$D$4) -->> aide vba sur fonction Replace
    tata = Split(titi, "$") ' --->> aide vba sur fonction split (retourne un array de valeurs)
    For i = 1 To UBound(tata)
      MsgBox tata(i) ' --->> aide vba sur boucle For to Next et sur ubound
    Next
    le reste est évident, non ? (de simples concaténations des divers éléments de l'array tata

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IDE][VSC++Express]Pourquoi parfois mon écran devient noir?
    Par olivierm79 dans le forum Visual Studio
    Réponses: 4
    Dernier message: 27/04/2006, 13h14
  2. Mon écran est tourné à l'orizontal
    Par Lanny dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 05/02/2006, 14h25
  3. Réponses: 4
    Dernier message: 30/05/2005, 10h29
  4. Mémoriser le contenu de l'écran (mode texte) ????
    Par Gory dans le forum Assembleur
    Réponses: 2
    Dernier message: 26/04/2005, 21h16
  5. imprimer le contenu de l'écran
    Par ensi dans le forum C
    Réponses: 10
    Dernier message: 19/08/2003, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo