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 :

sélection et affichage cellule [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut sélection et affichage cellule
    Bonjour,

    je me pose une question.

    est il possible qu'à partir d'un vlookup, qui aura comme résultat une lettre d'une colonne (ex : L), de selectioner la cellule K1 et que celle-ci s'affiche directement à gauche de l'écran.
    En résumé que les colonnes avant K soient cachées.

    Merci pour vos infos.

  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 pense que ta question est finalement comment afficher la cellule de son choix dans le coin supérieur gauche de la feuille de calcul.
    La réponse est par utilisation simple la méthode Goto (rubrique Application.Goto, méthode de ton aide VBA. Elle est assortie d'un exemple clair)

  3. #3
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    super

    Mais dans mon code ci-dessous, je voudrais que col2 soit en fait le résultat de col1 mais une colonne avant
    ex : col1=k col2=L

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CBTNMove_Click()
     
        Dim col1 As String, col2 As String
     
        col1 = Application.WorksheetFunction.VLookup(CBTNMove.Caption, Sheets("setup").Range("A3:C14"), 2, 0)
        col2 =
     
     
     
    End Sub
    De plus, le range (A3:C14) porte un nom défini. je suppose que je peux mettre ce nom entre les parenthèses ???

  4. #4
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    voila j'ai un peu avancé.

    Il trouve col1 sans problème, ensuite je l'envoi sur col1 & 1 et je détermine le numéro de ligne et de colonne
    pas de problème


    mais ensuite il coince à la ligne 18 où je voudrais qu'il recule d'une colonne.

    pq ???


    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
    Private Sub CBTNMove_Click()
     
        Dim col1 As String
        Dim ligne As Integer
        Dim colonne As Integer
        Dim cell As Range
     
     
        col1 = Application.WorksheetFunction.VLookup(CBTNMove.Caption, Sheets("setup").Range("SetupImportMois"), 2, 0)
     
        Application.EnableEvents = False
        Sheets("MOIS-MAAND").Range(col1 & "1").Select
        With ActiveCell
            ligne = .row
            colonne = .Column
        End With
     
        cell = ActiveCell.Offset(-1, 0)
     
        Application.Goto Reference:=Worksheets("MOIS-MAAND").Range(cell), Scroll:=True
     
        Application.EnableEvents = True
     
    End Sub

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    ligne n°18, pourquoi recules-tu alors d'une ligne ?‼     Juste en lisant l'aide VBA d'Offset …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  6. #6
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    d'une ligne ???

  7. #7
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    j'ai modifié en mettant un if au cas une autre cellule que (col1 & 1) soit active mais cela fonctionne pas.

    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
    Private Sub CBTNMove_Click()
     
        Dim col1 As String
        Dim ligne As Integer
        Dim colonne As Integer
        Dim cell As Range
     
     
        col1 = Application.WorksheetFunction.VLookup(CBTNMove.Caption, Sheets("setup").Range("SetupImportMois"), 2, 0)
     
        Application.EnableEvents = False
     
        If Sheets("MOIS-MAAND").Range.Activate <> Sheets("MOIS-MAAND").Range(col1 & "1").Activate Then
            Sheets("MOIS-MAAND").Range(col1 & "1").Activate
            Else
        End If
     
        With ActiveCell
            ligne = .row
            colonne = .Column
        End With
     
        cell = ActiveCell.Offset(0, -1)
     
        Application.Goto Reference:=Worksheets("MOIS-MAAND").Range(cell), Scroll:=True
     
        Application.EnableEvents = True
     
    End Sub

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Ligne n°23 , quel est le type de la variable cell ?
    Si ce n'est pas une variable de donnée, alors comment doit-on l'affecter ?

    Au passage elle est inutile pour ne l'utiliser qu'une fois, juste bon à gâcher des ressources et à ralentir le processus !
    Surtout qu'une variable objet doit être libérée en fin de procédure comme indiqué dans le tutoriel des variables …
    Autant utiliser directement l'objet dans la ligne n°25 cela t'aurait évité cette erreur …

  9. #9
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    j'ai enlevé le if pour continuer mon code
    cela fonctionne mais maintenant il me selectionne les 4 colonnes du mois
    a savoir la colonne précédente à "col1 & 1", la col1 et les deux suivantes

    vois pas pourquoi ?


    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
    Private Sub CBTNMove_Click()
     
        Dim col1 As String
        Dim ligne As Integer
        Dim colonne As Integer
        Dim cell As Variant
     
         col1 = Application.WorksheetFunction.VLookup(CBTNMove.Caption, Sheets("setup").Range("SetupImportMois"), 2, 0)
     
        Application.EnableEvents = False
     
        Sheets("MOIS-MAAND").Range(col1 & "1").Activate
     
        With ActiveCell
            ligne = .row
            colonne = .Column
        End With
     
        Set cell = ActiveCell.Offset(0, -1)
     
        Application.Goto Reference:=Worksheets("MOIS-MAAND").Range(cell), Scroll:=True
     
        Application.EnableEvents = True
     
    End Sub

  10. #10
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    code modifié suite à ta remarque (enfin je pense)

    et si inutile, comment l'incorporer dans la ligne 21 du code ci-dessous ?

    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
    Private Sub CBTNMove_Click()
     
        Dim col1 As String
        Dim ligne As Integer
        Dim colonne As Integer
        Dim cell As Variant
     
         col1 = Application.WorksheetFunction.VLookup(CBTNMove.Caption, Sheets("setup").Range("SetupImportMois"), 2, 0)
     
        Application.EnableEvents = False
     
        Sheets("MOIS-MAAND").Range(col1 & "1").Activate
     
        With ActiveCell
            ligne = .row
            colonne = .Column
        End With
     
        Set cell = ActiveCell.Offset(0, -1)
     
        Application.Goto Reference:=Worksheets("MOIS-MAAND").Range(cell), Scroll:=True
     
        Set cell = Nothing
     
        Application.EnableEvents = True
     
    End Sub

  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Déjà dans ce code les lignes n°4, 5 et 14 à 17 n'ont aucune utilité !   Et ce ne sont pas les seules …


    Citation Envoyé par rossemma Voir le message
    est il possible qu'à partir d'un vlookup, qui aura comme résultat une lettre d'une colonne (ex : L), de sélectionner la cellule K1 et que celle-ci s'affiche directement à gauche de l'écran.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CBTNMove_Click()
        Dim V
        V = Application.VLookup(CBTNMove.Caption, Range("setup!SetupImportMois"), 2, 0)
        If IsError(V) Then Exit Sub
        Application.EnableEvents = False
        Application.Goto Range("'MOIS-MAAND'!" & V & "1")(1, 0), True
        Application.EnableEvents = True
    End Sub
    _________________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  12. #12
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Merci

    mais quand j'arrive à la ligne 6, il me dit que l'opération échoué "la méthode range de l'objet global échoué"

  13. #13
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Quelle est donc la valeur de V ?   B-A-BA du développeur, vérifier les variables !

  14. #14
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    V est correct, il me trouve la bonne lettre

    ex : pour le bouton janvier, V est égal à B
    D'après ton code il prend B & 1 soit B1 et recule d'une colonne

    exact ??

    j'ai revérifié et la resultat est correct, il trouvé la bonne lettre à chaque fois
    j'ai essayé avec plusieurs mois

    j'ai copy/paste ta modification et il me répond le même message.

  15. #15
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Avec le code ci-dessous, cela fonctionne apparemment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CBTNMove_Click()
     
        Dim V
     
        V = Application.VLookup(CBTNMove.Caption, Range("setup!SetupImportMois"), 2, 0)
     
        If IsError(V) Then Exit Sub
        Application.EnableEvents = False
        Application.Goto Reference:=Worksheets("MOIS-MAAND").Range(V & "1").Offset(, -1), Scroll:=True
     
        Application.EnableEvents = True
     
    End Sub

  16. #16
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    C'est à cause du nom de ta feuille :   je viens de modifier la ligne n°6 dans le post #11;   OK pour moi !

    Les lignes n°5 & 7 du post #11 n'ont aucune utilité sans évènement Change dans le module de la feuille ou du classeur …

    _________________________________________________________________________________________________________

        Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  17. #17
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    encore une petite question

    comment lui dire que les colonnes à droite soit cachée
    ex : mois d'avril colonne M
    donc à partir de O cela doit être caché

    J'avais pensé utilisé qqc comme ça et lui dire comme variable "O" avec +/- le même code qu'avant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("O:XFD").Hidden = True
    je suis dans le bon ???

    merci

  18. #18
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Bonjour à tous,

    Je relance le post #17.

    Personne pour m'aider ou m'orienter ?

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2007, 18h40
  2. [VBA-Excel] - Empêcher sélection de certaines cellules
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/01/2007, 11h04
  3. sélection plage de cellule sur Msflexgrid
    Par Charly45 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/12/2006, 16h35
  4. Slection d'une cellule dans une Flexgrid
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/08/2006, 14h44
  5. [JTable] Empêcher sélection de certaines cellules
    Par Oliveuh dans le forum Composants
    Réponses: 6
    Dernier message: 28/07/2004, 13h47

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