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 :

Boucle sur chaque cellule non vide d'une ligne


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable Commercial
    Inscrit en
    Mars 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 51
    Points : 30
    Points
    30
    Par défaut Boucle sur chaque cellule non vide d'une ligne
    Bonjour,

    Dans un fichier, j'ai créé une macro dans la feuille "SOURCE" qui, en cliquant sur le nom du "client" (Target.Value) où il y a un lien hypertexte, va copier coller le contenu de certaines cellules de la ligne active à des emplacements bien déterminés dans une autre feuille "FICHE".

    Voici mon code :
    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
    Option Compare Text
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        If Target.Column = 3 And Target.Hyperlinks.Count Then
            Sheets("FICHE").Range("D4").Value = Target.Value
            Sheets("FICHE").Range("D3").Value = Target.Offset(0, -1).Value
            Sheets("FICHE").Range("K4").Value = Target.Offset(0, -2).Value
            Sheets("FICHE").Range("C8").Value = Target.Offset(0, 5).Value
            Sheets("FICHE").Range("E18").Value = Target.Offset(0, 1).Value
            Sheets("FICHE").Range("C12").Value = Target.Offset(0, 2).Value
            Sheets("FICHE").Range("D12").Value = Target.Offset(0, 3).Value
            Sheets("FICHE").Range("F12").Value = Target.Offset(0, 4).Value
        End If
     
    End Sub
    J'aurais besoin de récupérer également sur la feuille "FICHE" certaines autres informations avec une boucle (sur chaque cellule) et des conditions (cellules non vides) :
    => dans la feuille "SOURCE", dans la plage qui démarre à Target.Offset(0, 6) jusqu'à Target.Offset(0, 30), pour chaque cellule non vide sur la droite, j'ai besoin d'aller copier coller dans la feuille "FICHE" :

    1. La valeur de l'entête de colonne de chaque cellule non vide :
    - en C21 de la feuille "FICHE", la valeur de la 1ère cellule de la colonne (entête de colonne) où se trouve la 1ère cellule non vide sur la droite
    - sur la ligne en dessous, la valeur de l'entête de colonne où se trouve la 2ème cellule non vide
    - sur la ligne en dessous, ...............................................................la 3ème.....................
    - ...

    2. La valeur de chaque cellule non vide :
    - en E21 de la feuille "FICHE", la valeur de la 1ère cellule non vide
    - sur la ligne en dessous, la valeur de la 2ème cellule non vide
    - sur la ligne en dessous, ....................3ème.......................

    J'ai beaucoup de difficultés à écrire ce code en intégrant la boucle et la condition.
    Je vous remercie d'avance de votre précieuse aide et peut vous transmettre une maquette si besoin.
    Cordialement.

  2. #2
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut


    Bonjour,

    en début de procédure, dimensionner une variable pour la cellule : Dim Rg As Range

    Parcourir chaque cellule via une boucle : For Each Rg in Range(Target.Offset(, 6), Target.Offset(, 30))

    La variable Rg pointant donc sur une cellule, reste à exploiter ses propriétés Column, Value

    Astuce : lire l'aide VBA intégrée de l'instruction With et, en pointant sur Target, cela allégerait le code …

    ____________________________________________________________________________________
    Tous unis, tous Charlie
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable Commercial
    Inscrit en
    Mars 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 51
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Malheureusement, même si j'ai bien conscience que vous, experts, n'avez pas vocation à écrire les codes pour nous, débutants, je ne suis malheureusement pas en capacité pour l'instant d'écrire cette macro seul.

    Pour autant, je vous assure que je suis en train de me former seul, et que je compte bien, moi aussi, aider un jour les débutants (ce que je fais déjà mais au bureau...).
    Je compte sur votre aide. Merci.

Discussions similaires

  1. [XL-2010] Dernière cellule non vide d'une ligne et simplification code
    Par Ditch3122 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/07/2012, 20h48
  2. [XL-2007] recherche première cellule non vide dans une ligne
    Par tigrou530 dans le forum Excel
    Réponses: 3
    Dernier message: 23/02/2012, 13h21
  3. Dernière cellule non vide d'une ligne
    Par rapheb dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/11/2011, 06h45
  4. [vba Excel] Obtenir dernier cellule non vide d'une ligne
    Par cow_boy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 10h07
  5. [VBA-E]selectionner la premiere cellule non vide d'une ligne
    Par muse47 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/10/2005, 08h11

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