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 :

Range d'une ligne complète avec indice de ligne dynamique [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut Range d'une ligne complète avec indice de ligne dynamique
    Bonjour,

    J'ai beau essayer et chercher sur différents forums, je ne trouve pas solution à mon problème.

    Je veux accéder directement aux lignes qui m'intéressent dans une feuille excel et ensuite, itérer sur les cellules jusqu'à la dernière colonne utile.

    Donc, j'ai la ligne en integer et je veux me faire un range de la ligne complète restreinte aux colonnes utiles (ne pas aller jusqu'à la colonne IV serait bien)

    Je ne sais pas quel algo implémenter.

    Fatigue Fatigue !!! (oui je sais, nous ne sommes que lundi...)
    Pourriez-vous m'aider svp ?

    J'ai pensé à faire un range de la ligne entière et ensuite de tester dans le for si la cellule de la première ligne à la colonne courante est vide ou non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        For Each Cell In range(ligneCherchee & ":" & ligneCherchee)
            If Cells(1, Cell.Column) <> "" Then
    Premier problème, je ne sais pas comment construire mon "For each cell in range(??????)".

    Merci d'avance pour votre coup de pouce.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    ça dépend de la structure de ton tableau .

    genre base de données ou....

    A partir de là on trouve la dernière colonne non vide de ton tableau et ton range va de 1 à cette colonne (pour peu que ça commence en 1).


    Sinon :

    dernière cellule de la ligne 5 dans fenêtre exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? Rows(5).Find("*", , , , xlByColumns, xlPrevious).Column
    cordialement,

    Didier

  3. #3
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Je parcours un XLS standard (une feuille avec un header qui m'indique à la dernière colonne), mais mon problème est surtout sur la première ligne - le for each - car je veux passer la ligne à la commande Range par une variable et j'ai une erreur non explicite 'erreur d'exécution 1004'.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Toto3()
    Dim cell As Range
    Dim lngDerCase As Long
    Dim lngLigneCible As Long
     
    lngLigneCible = 5
     
    lngDerCase = Rows(lngLigneCible).Find("*", , , , xlByColumns, xlPrevious).Column
    For Each cell In Range(Cells(lngLigneCible, 1), Cells(lngLigneCible, lngDerCase))
        Mon code
    Next cell
     
    End Sub
    cordialement,

    Didier

  5. #5
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Comme le montre mon code, ce que je cherche à faire c'est de récupérer la ligne entière (oublions la dernière colonne) et d'itérer dessus. Mais la ligne à trouver est paramétrée par la variable ligneCherchee.

    Le range que je fais plante. Une idée de comment construire mon range avec une variable ? J'ai essayé plusieurs choses mais rien n'y fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var = ligneCherchee & ":" & ligneCherchee
    range(var)
    ==> FAIL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range(ligneCherchee & ":" & ligneCherchee)
    ==> FAIL
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Vois la syntaxe du # 4, c'est une question de syntaxe d'écriture en effet..

    cordialement,

    Didier

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

Discussions similaires

  1. Remplacer une ligne complète avec SED
    Par cdjkhdjlhxjklnjskznj dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/04/2015, 13h35
  2. Créer une page complète avec PDFSharp
    Par Pingva dans le forum ASP.NET
    Réponses: 0
    Dernier message: 02/10/2013, 15h36
  3. Sélection ligne complète avec recherche dans tableau
    Par Dralex dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/12/2010, 08h32
  4. Réponses: 5
    Dernier message: 27/08/2010, 10h39
  5. Réponses: 0
    Dernier message: 27/05/2010, 16h24

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