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 :

utiliser les touches du clavier pour passer d'une cellule à une autre sans être bloqué par fin page active


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 10
    Points
    10
    Par défaut utiliser les touches du clavier pour passer d'une cellule à une autre sans être bloqué par fin page active
    Bonjour,


    Mon code qui suit a pour objectif de sélectionner une cellule qui contient un lien vers une image. une fois la cellule séelctionnée, une fenêtre s'ouvre et affiche l'image. Jusqu'à là tout se passe bien. Seulement, arrivé à la fin de la page (le bas de la page Excel active) Excel active, j'ai du mal à passer à la cellule suivante de la même colonne(ou colonne différente). (la souris se bloque). y a t-il une fonction en VBA qui permet d'utiliser les touches du clavier- la flèche en bas du clavier- pour défiler toutes les cellules d'une colonne sans être boloqué.

    Voici mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
     
    Const CSTR_RESULTAT_TEST = "résultat test"
    Const CSTR_RESULTAT_EXECUTION = "résultat exécution"
    Const CSTR_PAS_AFFICHAGE = "pas d'affichage"
     
    Const CINT_POSITION_IMAGE_RESULTAT_TEST = 6   ' 6 correspond à la colonne F
    Const CINT_POSITION_IMAGE_RESULTAT_EXECUTION = 12  12 correspond à la coonne L
    Const CINT_POSITION_IMAGE_RESULTAT_NE_PAS_AFFICHER = -99
     
    ' ici on définit les valeurs d'une liste
    Const PAS_D_AFFICHAGE = "Pas d'affichage"
    Const AFFICHAGE_IMAGE_EXECUTION = "Affichage image exécution"
    Const AFFICHAGE_IMAGE_DU_TEST = "Affichage image du test"
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim cellule As Range
    Dim Position_image As Integer
    Dim Pint_colonne_courante As Integer
    Dim Pstr_nom_image As String
    Dim A As Range
    Dim B As Range
     
    Mafenetre.Lbl_pb_image.Visible = False
     
    Set cellule = Worksheets("Test fonctionnel").Cells(3, 4)
     
    If (cellule = AFFICHAGE_IMAGE_DU_TEST) Then
        Position_image = CINT_POSITION_IMAGE_RESULTAT_TEST
    ElseIf (cellule = AFFICHAGE_IMAGE_EXECUTION) Then
        Position_image = CINT_POSITION_IMAGE_RESULTAT_EXECUTION
    Else
        Position_image = CINT_POSITION_IMAGE_RESULTAT_NE_PAS_AFFICHER
    End If
     
     
    If Position_image = CINT_POSITION_IMAGE_RESULTAT_TEST Or Position_image = CINT_POSITION_IMAGE_RESULTAT_EXECUTION Then
     
        Pint_colonne_courante = ActiveCell.Column
     
        Pstr_nom_image = ActiveCell.Offset(0, Position_image - Pint_colonne_courante).Value
     
        If Pstr_nom_image <> "" Then
            If UCase$(Right$(Pstr_nom_image, 4)) = ".JPG" Then
                If Dir(Pstr_nom_image) <> "" Then
                    Mafenetre.Picture = LoadPicture(Pstr_nom_image)
                    Mafenetre.Show False
                Else
                    Mafenetre.Picture = LoadPicture("")
                    Mafenetre.Lbl_pb_image.Caption = "Image Non Trouvée ???"
                    Mafenetre.Lbl_pb_image.Visible = True
     
                End If
            Else
                Mafenetre.Picture = LoadPicture("")
            End If
        Else
            Mafenetre.Picture = LoadPicture("")
        End If
     
    End If
     
    End Sub
    Je suis trés débutante en VBA et en programmation.
    Merci pour toute aide.

    Bonne journée

    aquarium33

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    J'avoue ne pas comprendre le problème : la possibilité de sélectionner une cellule n'est pas lié à sa visibilité.
    ActiveSheet.Range("A1000").Select sélectionnera la cellule A1000 qu'elle soit visible ou non.

    y a t-il une fonction en VBA qui permet d'utiliser les touches du clavier- la flèche en bas du clavier- pour défiler toutes les cellules d'une colonne
    On peut obtenir une fonction approchante en utilisant l'ascenseur de la fenêtre pour avancer d'une ligne avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.ScrollRow = ActiveWindow.ScrollRow + 1
    En espérant qu'a défaut de te dé-"boloquer", ça fera avancer un peu les choses.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/12/2013, 14h13
  2. [Lazarus] Utiliser les touches de fonction pour piloter
    Par Alea46 dans le forum Lazarus
    Réponses: 2
    Dernier message: 05/12/2010, 17h57
  3. Impossible d'utiliser les touches <- -> du clavier
    Par Le gris dans le forum Eclipse
    Réponses: 1
    Dernier message: 17/05/2010, 17h27
  4. Utiliser les touches du clavier
    Par didy_gwatinik dans le forum Débuter
    Réponses: 1
    Dernier message: 25/10/2008, 17h27
  5. Réponses: 2
    Dernier message: 04/10/2005, 20h54

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