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 :

Trouver la 1ere cellule non-vide a partir de la cellule selectionnee [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut Trouver la 1ere cellule non-vide a partir de la cellule selectionnee
    Salut tout le monde,

    tout est pratiquement dans le titre ... Je fais une macro ou je cherche des termes d'une feuille excel, une fois que je trouve ce terme j'active la cellule contenant le terme et je souhaiterais recuperer la donnee correspondante a ce terme qui se trouve juste quelques cellule a cote .. ( vers la droite )

    Je suis un peu en difficulte pour parcourir les cellules jusqu'a la premiere cellule non-vide ..... et ce vers la droite

    Voila ce que j'ai fait, et ce qui ne marche 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
     
    Sub TestExcel()
     Dim TabData(5)
     
     TabData(1) = "Husky Project": TabData(2) = "Customer Name":
    Dim Localise
     
     Dim Compteur As Integer
     
        For Compteur = 1 To 2
            TabData(Compteur) = Cells.Find(What:=TabData(Compteur), LookAt:=xlPart)
            Cells.Find(What:=TabData(Compteur), LookAt:=xlPart).Activate
            Rows(ActiveCell.Row).Select   ' ici c'est un debut mais j ai toute la ligne et pas juste la partie qui m interesserais
            MsgBox (TabData(Compteur))
     
                For Each Cell In ActiveRow ' ici je pense que l instruction ActiveRow ne fonctionne pas
                    If Cell <> 0 Then
                    G = Cell.Value
                    Exit For
                    Else
                    End If
                Next
     
     
     
    Next
     
    End Sub
    Si quelqu'un a une petite astuce .. Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,
    Pour avoir le numero de la dernière colonne non vide (ici en partant de A1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DernCol = Range("A1").End(xlToRight).Column

  3. #3
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour,
    Pour avoir le numero de la dernière colonne non vide (ici en partant de A1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DernCol = Range("A1").End(xlToRight).Column
    cela fonctionne avec la premiere ? si oui que faut il modifier ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    edit: en fait ce code simule le ctrl + flèche droite.
    Donc il te donne la dernière cellule non vide avant le premier vide.
    Par exemple si tu as "1" "1" "_" "1" sur ta ligne il te donne la valeur 2 puis que le premier vide est en 3eme colonne.

    edit2: en fait je crois que j'ai mal lu ton problème (désolé c'est le matin ...)
    Cependant il me semble que c'est quand même correct, essaye ce code sur un exemple simple pour être sur
    exemple2 (qui correspond mieux a ton problème):
    "1" "_" "_" "_" "1" te donne comme valeur 5 (le _ représentant du vide)

  5. #5
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    edit: en fait ce code simule le ctrl + flèche droite.
    Donc il te donne la dernière cellule non vide avant le premier vide.
    Par exemple si tu as "1" "1" "_" "1" sur ta ligne il te donne la valeur 2 puis que le premier vide est en 3eme colonne.

    edit2: en fait je crois que j'ai mal lu ton problème (désolé c'est le matin ...)
    Cependant il me semble que c'est quand même correct, essaye ce code sur un exemple simple pour être sur
    exemple2 (qui correspond mieux a ton problème):
    "1" "_" "_" "_" "1" te donne comme valeur 5 (le _ représentant du vide)
    J'ai un petit peu adapter la ligne que tu m'as passé et ca fonctionne niquel, je le poste au cas ou quelqu'un d'autre en aurait besoin ! Merci bcp a toi en tout cas

    Pour recapituler, le code cherche un terme, a partir de ce terme il cherche la premiere cellule non vide sur la meme ligne ( ce qui correspond a la premiere colonne non vide ) vers la droite, et recupere le contenu de cette cellule non vide . Je pense que mon code n'est pas optimise au mieux mais il fonctionne !

    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
     
    Sub TestExcel()
     Dim TabData(5)
     
     TabData(1) = "Husky Project": TabData(2) = "Customer Name":
    Dim Localise
     
     Dim Compteur As Integer
     Dim TestRange
     
        For Compteur = 1 To 2
            TabData(Compteur) = Cells.Find(What:=TabData(Compteur), LookAt:=xlPart)
            TestRange = Cells.Find(What:=TabData(Compteur), LookAt:=xlPart).Address
            Derncol = Range(TestRange).End(xlToRight).Address
             MsgBox (TestRange)
             MsgBox (Derncol)
             Range(Derncol).Activate
             Trsf = ActiveCell
             MsgBox (Trsf)
    End Sub
    A +

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/09/2013, 17h05
  2. Trouver l'avant derniere cellule non vide
    Par teddy72000 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/02/2013, 17h42
  3. compter sur une ligne à partir de derniere cellule non vide
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 18h23
  4. Réponses: 5
    Dernier message: 22/08/2007, 18h42
  5. trouver derniere cellule non vide
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/08/2007, 21h14

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