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 :

traiter une sélection sur excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Par défaut traiter une sélection sur excel
    Bonjour à tous !

    Je souhaiterais faire un traitement sur deux colonnes choisies par l'utilisateur dans un tableau dynamique. En fait l'utilsateur choisira deux colonnes contigues, et je souhaiterais faire la différence des données numériques de chacune des lignes des deux colonnes choisies.
    J'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Sheet1").Activate 
    ActiveCell.CurrentRegion.Select
    Mais je ne sais pas comment me balader dans la selection, càd comment récupérer par exemple la valeur de la 1ere ligne de la colonne de gauche de la selection.

    Merci d'avance pour votre réponse !

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    je ne suis pas certain d'avoir tout compris

    j'ai une cellule active, à partir de cette cellule, je selectionne une colonne que je dois traiter avec la colonne de gauche, par contre ce traitement on le met où ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub essai()
        Dim plage as range ' je definis une plage de cellule
        Dim cel as range ' je definis une cellule
        Set plage = range(cells(1,activecell.column).address & ":" & cells(65536,activecell.column).end(xlup).address) ' je recupere la colonne dans ma plage
        For each cel in plage ' je cree une boucle qui va scruter toutes les cellule de la plage
            msgbox cel.offset(0,-1) ' affiche la cellule de gauche en message
        next
    end sub

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Par défaut
    merci pour ta réponse.
    Malheureusement ta boucle ne renvoie que la valeur de la 1èere case à gauche. Il faudrait que je puisse me balader sur la colonne choisie (en descendant !)

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Offset(0,-1) est un déplacement de 0 ligne et de -1 colonne par rapport à l'adresse de cel c'est à dire que si la sélection de départ est à D5 la valeur renvoyée avec offset(0,-1) sera la valeur de la cellule C5 donc à toi de décider par le code de combien de ligne ou colonne tu veux te déplacer
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Par défaut
    merci pour vos réponses rapides !
    en fait ce qui me manquait c est :
    Je vais me débrouiller avec cela.
    Merci encore pour vos réponses !

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Lorsque tu sélectionnes un tableau avec UsedRange ou CurrentRegion les propriétés
    Address donne la référence ex "$A$1:$F$10
    Row donnera le n° de la première ligne du tableau
    Column la première colonne
    Rows le nombre de lignes
    Columns le nombre de colonnes
    Le Select ne doit pas être appliqué car cela n'apporte rien et ralentit l'exécution.
    Je l'ai placé dans le code ci-dessous, juste pour visualiser la sélection lors de l'exécution du programme.
    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
    Sub selectionRange()
     Dim cell As Range
     Set cell = Worksheets("Feuil4").UsedRange
     MsgBox InfoSelection(cell), Title:="Information sur la sélection"
    End Sub
    Function InfoSelection(Selection As Range)
     Dim txt$
     With Selection
      .Select
      txt = "Adresse" & vbTab & vbTab & .Address
      txt = txt & vbCrLf & "Début de ligne" & vbTab & .Row
      txt = txt & vbCrLf & "Début de colonne" & vbTab & .Column
      txt = txt & vbCrLf & "Nombre de lignes" & vbTab & .Rows.Count
      txt = txt & vbCrLf & "Nombre de colonne" & vbTab & .Columns.Count
     End With
     InfoSelection = txt
    End Function
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/05/2006, 18h42
  2. Faire une sélection sur une image en MFC
    Par rider74 dans le forum MFC
    Réponses: 2
    Dernier message: 04/05/2006, 13h55
  3. [VBA-E]Filtre via une macro sur Excel
    Par jamal.b dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2006, 15h35
  4. Sortie d'une facture sur excel
    Par ShortcutZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/01/2006, 17h07
  5. Faire une sélection sur une image?
    Par sybilla dans le forum MFC
    Réponses: 3
    Dernier message: 29/08/2005, 13h34

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