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 en VBA avec Excel 2013 [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut Sélection en VBA avec Excel 2013
    Bonjour,

    Je souhaiterai effectuer, en VBA, une sélection, vers le haut, de la cellule où se situe mon curseur vers la 2ème cellule de la même colonne.
    Exemple : de C20 à C2 ou de Z300 à Z2

    Pourriez-vous m'aider ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Rogeure Voir le message
    Bonjour,

    A tester :
    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
     
    Option Explicit
     
    Public AireSelectionnee As Range
     
    Sub SelectionnerLesCellules()
     
        With ActiveSheet
               If ActiveCell.Row > 1 Then
                  Set AireSelectionnee = .Range(ActiveCell, .Cells(2, ActiveCell.Column))
                  MsgBox AireSelectionnee.Address
               End If
        End With
     
    End Sub

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut
    désolé mais ton code ne fonctionne pas

    Pourrais-tu me dire pourquoi celui-ci pose problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Selectionner de la cellule active jusqu'à la deuxième ligne
        'Range(Selection, Cells(ActiveCell.Column, 3)).Select
    Merci

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Rogeure Voir le message
    désolé mais ton code ne fonctionne pas

    Pourrais-tu me dire pourquoi celui-ci pose problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Selectionner de la cellule active jusqu'à la deuxième ligne
        'Range(Selection, Cells(ActiveCell.Column, 3)).Select
    Merci
    Il est en commentaire. Enlève l'apostrophe.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Rogeure Voir le message
    désolé mais ton code ne fonctionne pas
    Clic droit sur une cellule.

  6. #6
    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
    Bonjour
    @Eric
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveSheet
               If ActiveCell.Row > 1 Then
                  Set AireSelectionnee = .Range(ActiveCell, .Cells(2, ActiveCell.Column))
    n'y aurait il pas quelque chose qui te gène dans ce principe

    que vient faire activecell dans un bloc with activesheet ?

    jusqu'à preuve du contraire activecell donne la cellule active de l'activesheet non?
    ca se résume a ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set AireSelectionnee =ActiveCell.resize(2,1)
    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

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.


    Citation Envoyé par patricktoulon Voir le message
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveSheet
               If ActiveCell.Row > 1 Then
                  Set AireSelectionnee = .Range(ActiveCell, .Cells(2, ActiveCell.Column))
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set AireSelectionnee =ActiveCell.resize(2,1)
    [...]


    Les deux codes donnés par Patrick, apparemment non testés, ne donnent évidemment pas le même résultat... Le premier donné par Eric étant le bon, le "raccourci" emprunté par Patrick ne répondant pas à la demande initiale.

    Nom : 2019-06-16_123010.png
Affichages : 204
Taille : 9,6 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    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
    bonjour pierre
    2 codes????
    j'en ai qu'un !! c'est le Resize!!! l'autre c'est une reprise de Eric pour montrer ce qui me dérangeais ( je n'avais pas a le tester )

    edit:
    et si je prend la demande initiale au pied de la lettre
    Bonjour,

    Je souhaiterai effectuer, en VBA, une sélection, vers le haut, de la cellule où se situe mon curseur vers la 2ème cellule de la même colonne.
    Exemple : de C20 à C2 ou de Z300 à Z2

    Pourriez-vous m'aider ?

    Merci
    je fait comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub testx()
    Set Rng = Range(ActiveCell, ActiveCell.Offset(-ActiveCell.Row + 2))
    MsgBox Rng.Parent.Name & vbCrLf & Rng.Address
    End Sub
    l'adress est bonne et le sheets parent est bien reconnu (sans block with activesheet)
    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

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu sembles dire, au #6, que les deux codes donnent le même résultat ( "ca se résume a ca "). Je dis que les deux codes ne donnent pas le même résultat, donc, "ca ne se résume pas à ça"... Et je ne vois pas ce qu'il y a comme problème à utiliser ActiveSheet et ActiveCell dans la même ligne de code.

    C'est juste cela que je souhaitais souligner.

    Si j'ai mal interprété ton intervention, clarifie-la.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    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
    re
    je me suis mal exprimé
    "ca se résume a ca" c'est pour ma version
    en considérant que l'activecell soi dans la rows(1)

    mais a relire la demande initiale">1" ca pouvait être plus bas

    pour le with activesheet:....activecell
    je le fais jamais ca évite les erreurs du genre activesheet.activecell qui plante forcement car activesheet n'a pas de membre activecell
    par contre activecell a bien un membre ".parent"

    autrement dit par activecell tu peux tout chopper y compris le parent(qui est le activesheet)(démo dans le édit)
    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

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    En attendant, le code d'Eric réalise ce que le demandeur demande et celui que tu donnais en #6 pas, comme l'illustre l'image que j'ai postée dans mon premier message. Avais-tu testé ton code? Il suffisait pourtant de regarder les adresses des plages restituées par le code d'Eric et le tien pour voir de suite lequel était le bon et lequel était le mauvais. Après, le code que tu donnes en #8 est correct, c'est juste une autre façon de coder que ce qui avait déjà été donné avant.



    Citation Envoyé par patricktoulon Voir le message
    [...]
    pour le with activesheet:....activecell
    je le fais jamais ca évite les erreurs du genre activesheet.activecell qui plante forcement car activesheet n'a pas de membre activecell [...]
    C'est vraiment n'importe quoi
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. Demande d'aide sur vba avec excel
    Par karter13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/01/2016, 21h56
  2. Plantage du projet VBA avec Excel 2010 et 2003
    Par Franck_P dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/05/2012, 19h34
  3. [AC-2007] Ouverture d'une fichier Excel à partir de VBA (avec Excel 2007 au lieu de 2003)
    Par courriervirtuel dans le forum VBA Access
    Réponses: 0
    Dernier message: 06/10/2011, 18h19
  4. [XL-2010] Fonction Chr() dans VBA avec Excel 2010
    Par Frenchie_lol dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/06/2010, 22h20
  5. tirage formules en VBA avec excel
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 46
    Dernier message: 23/11/2006, 18h33

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