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 :

Récupérer le numéro de ligne d'une cellule à partir d'une autre


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Récupérer le numéro de ligne d'une cellule à partir d'une autre
    Bonjour,
    J’essaie de récupérer le numéro de ligne d'une cellule qui se trouve sur une dizaine de lignes plus haut que ma cellule active. J'ai utilisé offset mais apparemment le - pose un problème, car avec un nombre positif je n'ai pas de code erreur mais avec un -10 ça retourne une erreur.

    voici une partie du code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.Offset(-10, 1).Activate '(ligne qui contient l'erreur)
    l_prix_debut=Activecell.row
    Merci

  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,



    Il y a même une icône dédiée …


    Sinon j'entrevois une erreur de logique : quelle est donc la cellule active quand l'erreur se déclenche ?

    Et il est déconseillé de sélectionner une cellule pour y accéder, c'est inutile …
    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
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ActiveCell.row>10 then ActiveCell.Offset(-10, 1).Activate '(ligne qui contient l'erreur) '(ligne qui contient l'erreur)

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    avant l'activecell j'avais ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set found_date = Worksheets("price").Range(Cells(1, colonne_ticker), Cells(6100, colonne_ticker)).Find(search_ticker, LookAt:=xlWhole)
     
     
    ligne_date = found_date.Row
    J'étais déja à la ligne 2741, il ne s'agissait donc pas d'un numéro de ligne négative qui pourrait justifier le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ActiveCell.row>10....
    Merci.

  5. #5
    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

    Et voilà !

    Encore une mauvaise utilisation de la méthode Find alors que c'est pourtant clair dans l'aide intégrée au VBA …
    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)

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    L'erreur serait en rapport avec le find? qu'est ce qui pose problème dans la méthode?

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2014
    Messages : 90
    Points : 63
    Points
    63
    Par défaut
    Ce code fonctionne très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub remontee()
    ActiveCell.Offset(-10, 0).Select
     
    l_prix_debut = ActiveCell.Row '
     
     
    MsgBox ("l_prix_debut est" & l_prix_debut)
    End Sub
    Sinon avec la méthode Find:
    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
    Sub Recherche()
    Dim Cellule
    Cellule = InputBox("Tapez les données que la cellule contient")
     
    'vérifie si cette cellule existe dans la feuille xx, colonne B:
    Set Test = Sheets("xx").Range("B2:B65000").Find(what:=Cellule)
     
    If Test Is Nothing Then
    MsgBox ("Cette cellule n'existe pas dans la colonne B")
    Call Recherche
    Else
    NumLigne = Sheets("xx").Range("B2:B65000").Find(what:=Cellule, LookIn:=xlValues, lookat:=xlWhole).Row
    MsgBox ("La ligne est:" & NumLigne)
    End If
       End Sub

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Ce code marche mais pas dans mon code; je l'ai testé tout seul et sans surprise il fonctionne. Le problème doit venir de mon code à moi. Si au lieu de -10 je met un nombre positif ça fonctionne. Le problème doit venir du -
    Citation Envoyé par Alasgard Voir le message
    Ce code fonctionne très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub remontee()
    ActiveCell.Offset(-10, 0).Select
     
    l_prix_debut = ActiveCell.Row '
     
     
    MsgBox ("l_prix_debut est" & l_prix_debut)
    End Sub
    Sinon avec la méthode Find:
    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
    Sub Recherche()
    Dim Cellule
    Cellule = InputBox("Tapez les données que la cellule contient")
     
    'vérifie si cette cellule existe dans la feuille xx, colonne B:
    Set Test = Sheets("xx").Range("B2:B65000").Find(what:=Cellule)
     
    If Test Is Nothing Then
    MsgBox ("Cette cellule n'existe pas dans la colonne B")
    Call Recherche
    Else
    NumLigne = Sheets("xx").Range("B2:B65000").Find(what:=Cellule, LookIn:=xlValues, lookat:=xlWhole).Row
    MsgBox ("La ligne est:" & NumLigne)
    End If
       End Sub

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2014
    Messages : 90
    Points : 63
    Points
    63
    Par défaut
    Si ça vient de ton code, montre le nous .

  10. #10
    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
    Citation Envoyé par adknou Voir le message
    L'erreur serait en rapport avec le find? qu'est ce qui pose problème dans la méthode?
    Que se passe-t-il lorsque cette méthode n'est pas codée comme dans l'exemple de son aide (à lire donc !)
    quand elle ne trouve rien ?

    Une erreur ‼
    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)

Discussions similaires

  1. Filtrer une colonne à partir d'une cellule
    Par D-D-Du-06 dans le forum Excel
    Réponses: 7
    Dernier message: 21/04/2016, 11h26
  2. différencier une cellule vide d'une cellule nulle
    Par schwarzy2 dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/09/2008, 13h50
  3. Compléter une cellule à partir d'une TextBox
    Par Le Marsu dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/08/2008, 22h48
  4. Lancer une macro à partir d'une cellule
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/09/2007, 16h58
  5. incrémenter une cellule jusqu'a une cellule variable
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 14h48

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