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 :

[VBA-E]Selection d'une ligne a partir d'une certaine colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 145
    Par défaut [VBA-E]Selection d'une ligne a partir d'une certaine colonne
    bonjour,
    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
    Dim cell as Range
    Dim numag as String
    Windows("A.xls").activate
    For each cell In Selection
      numag=cell.value
      'range(Ex:Lx).select ' <- ici j'aimerais que cela selectionne la ligne de la cellule ou il y a le numag, de la colonne E à la colonne L mais la macro doit trouver le numero de la ligne tte seule (x etant le numero de la ligne)
      Application.CutCopymode=false
      Windows("B.xls").activate
      Cells.find(What:=numag, after:=Activecell, LookIn:=xlFormulas, LookAt _
    :=xlpart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).activate
      'Range("Mx").Select ' <- ici j'aimerais que cela fasse la selection de la cellule de la ligne ou se trouve le numag de la colonne M (x etant le numero de la ligne)
      ActiveSheet.paste
    Next cell
    MERCI de votre aide!

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Hello!
    Un .Find te retourne une cellule. Tu peux alors faire un ".Row" pour avoir le numéro de la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    NumLigne = Cells.find(What:=numag, after:=Activecell, LookIn:=xlFormulas, LookAt _ 
    :=xlpart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ 
    False, SearchFormat:=False).Row
    Ensuite, remplace ton "'range(Ex:Lx).select " par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range(Cells(NumLigne,5),Cells(NumLigne,12)).Select

  3. #3
    Membre confirmé Avatar de Yanos
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 160
    Par défaut
    donc si je fais une sélection comme suis ça marchera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Selection.Find(What:="Portuguese", After:=ActiveCell, LookIn:=xlFormulas _
            , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
     
    i=Selection.row
     
    Rows(i).Select
    Selection.Delete Shift:=xlUp
    ça cherche un mot particulier, prend le numéro de la ligne dans i, selectionne la ligne puis l'efface.

    Je crois que c'est bon normalement

    Edit: mais on fait comment quand ça retourne rien et que c'est dans une boucle???

  4. #4
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Bon, alors c'est quoi, la question, là?
    Tu as une erreur si le texte recherché n'est pas trouvé dans l'onglet, c'est ça?
    Si c'est ça, tu dois tester (par un If Not ... Is Nothing) le résultat du .Find avant de faire le .Activate .

  5. #5
    Membre confirmé Avatar de Yanos
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 160
    Par défaut
    euh c'est pas vraiment une question,
    je m'inspire de la réponse que tu as donné il me manquait la fonction Row

    voilà j'avais fait une petite bourde

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i = Cells.Find(What:="Foreign", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
     
    Rows(i).Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    j = j + 1
    je cherche un mot et récupère la ligne, selectione la ligne, la supprime et en fait il faut la déselectionner après pour continuer la recherche.

    C'est artisanal, ça fait très "Macro spirirt" mais ça marche

  6. #6
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    D'accord... Alors clique vite sur le bouton
    Et méfie-toi quand même du cas où "foreign" ne se trouve pas dans ta feuille...

  7. #7
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Alors c'est non... Tu ne veux pas cliquer sur ce bouton ?
    Si c'est juste pour m'énerver, je te rassure: ça marche!!!
    Et ça ne va pas me donner envie de répondre à tes prochaines questions...

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Citation Envoyé par Megaxel
    Alors c'est non... Tu ne veux pas cliquer sur ce bouton ?
    Si c'est juste pour m'énerver, je te rassure: ça marche!!!
    Et ça ne va pas me donner envie de répondre à tes prochaines questions...
    ya des ingrats hein !

  9. #9
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Ouais, mais moi, je me classe dans les "rancuniers" !!

  10. #10
    Membre confirmé Avatar de Yanos
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 160
    Par défaut
    ah désolé ce n'est pas moi qui avais ouvert le topic, je peux donc pas mettre

    (J'ai trouvé le cas où j'ai besoin du if not ... is nothing à cause d'une erreur 91)

    t'inquiètes, tu assures megaxel

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

Discussions similaires

  1. Détection de la première ligne vide à partir d'une ligne n
    Par dammex dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 13/07/2012, 21h46
  2. Réponses: 1
    Dernier message: 23/07/2011, 11h50
  3. Réponses: 1
    Dernier message: 03/01/2011, 14h01
  4. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  5. lancer une mdb a partir d'une ligne de commande
    Par dpie dans le forum Access
    Réponses: 5
    Dernier message: 30/11/2004, 15h01

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