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 :

Intersection ligne / Plage


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 39
    Par défaut Intersection ligne / Plage
    Bonsoir à tous

    Je bloque actuellement sur un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ThisWorkbook.Sheets("Feuil1").Range("plage").Cells(ligne)
    Donc Feuil1 représente biensur la feuille
    Plage représente par exemple la plage A2:A1000 (ce sera toujours une seule colonne de large, pas plus)
    et ligne représente le N° du traitement en cours (For ligne = 2 to 1000)

    Je cherche à sélectionner la cellule à l'intersection de Plage et de Ligne.
    Je pense bien que ça ne doit pas être grand chose mais bon ...

    Merci de votre aide

    Merci pour les balises, j'avais oublié

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Je te propose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("A" & ligne)
    Si tu ne connais pas la colonne, parce qu'elle change, tu peux faire aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("plage").cells(ligne,1)
    Cordialement,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 39
    Par défaut
    Merci PGZ

    en fait je veux simplement selectionner la cellule en question ...
    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("plage").Cells(ligne).select
    ne fonctionne pas

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Tu en as oublié un morceau : il manque ",1"

    Tu peux aussi écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("plage")(ligne,1)
    Mais attention : la méthode SELECT comme on le dit tous les jours ne s'utilise quavec le Corse et l'Arménien.

    Cordialement,

    PGZ

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Re,
    Je pense que si c'est pour une boucle, je proposerais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim plage As Range, cel As Range
    Set plage = Range("A2:A1000 ")
    For Each cel In plage
       'cel = ton code cel représente les cellules qui bouclent
       'ou
       'ton code = cel
    Next cel
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 39
    Par défaut
    Ha oui ...

    Mais le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("plage")(ligne,1)
    n'est pas accepté par VBA, il doit manquer quelquechose pour pouvoir sélectionner la cellule

    Merci Casefayere, mais je fais déjà une boucle qui balaye mes lignes.

    Mais en fait à un moment, je souhaite mettre une cellule dans la case (ça c'est ok) et faire un copier-collage spécial afin de figer la valeur.

    C'est pour ça que je cherche à selectionner la cellule

  7. #7
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Tu n'as pas besoin de sélectionner pour copier-coller.
    En plus copier coller, c'est intéressant si tu veux faire autre chose que copier la valeur...

    On peut voir où tu en es de ton code car je suis surpris que les formules que je t'ai donnée ne marche pas.

    PGZ

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 39
    Par défaut
    Oui, voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Global ligne As Long
     
    Sub test()
     
        For ligne = 2 To ThisWorkbook.Sheets("Feuil1").Columns(1).Find("*", , , , , xlPrevious).Row
     
        ThisWorkbook.Sheets("Feuil1").Range("plage")(ligne, 1).Copy
        Selection.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
     
        Next
     
    End Sub
    La copie fonctionne mais il ne me colle la valeur sur la dernière cellule selectionnée avant que je lance la macro.

  9. #9
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Citation Envoyé par Danieldu54 Voir le message
    La copie fonctionne mais il ne me colle la valeur sur la dernière cellule selectionnée avant que je lance la macro.
    C'est normal, c'est ce que tu lui demandes de faire. Tu veux coller la valeur où?

    PGZ

  10. #10
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    à pgz, tu m'as oté les mots de mon clavier

    exemple, pour coller en b2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range("b2").PasteSpecial Paste:=xlPasteValues
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 39
    Par défaut
    Je veux juste faire un collage spécial de la valeur dans la même cellule, voici un exemple. Je précise que je veux que le traitement se fasse par balayage de ligne car j'ai d'autres opréations à faire pour chaque ligne.
    Fichiers attachés Fichiers attachés

  12. #12
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    OK. Donc tu veux supprimer la formule et garder la valeur.

    Je te propose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For ligne = 2 To ThisWorkbook.Sheets("Feuil1").Columns(1).Find("*", , , , , xlPrevious).Row
     
         with ThisWorkbook.Sheets("Feuil1").Range("plage")(ligne, 1)
              .Formula = .Value
         End with         
        Next
    mais tu peux le faire aussi sur toute la plage en une fois.
    COrdialement,

    PGZ

  13. #13
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Ok, j'imagine qu'au départ c'est une formule et tu ne colles que la valeur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Sheets("Feuil1").Range("plage")(ligne, 1).Copy
        Sheets("Feuil1").Range("plage")(ligne, 1).PasteSpecial Paste:=xlPasteValues
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 39
    Par défaut
    mille merci à vous !

    Vos propositions fontionnent très bien mais je penche pour celle de Pgz car plus rapide sur une grande quantité

    Je me suis peut-être mal exprimé au début dans ce que je voulais faire.
    Mais le résultat est là ....

    Bonne soirée à vous deux

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

Discussions similaires

  1. Intersection Ligne colonne et inscription dans (x) Colonnes
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/04/2013, 17h18
  2. Mapinfo : intersection lignes et surface
    Par JeromeMATHIAS dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 23/10/2012, 16h32
  3. intersection des plages datetime
    Par nitho dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/05/2010, 11h55
  4. Réponses: 3
    Dernier message: 05/03/2010, 18h36
  5. [AC-2003] Suppression dans liste modifiable intersection ligne/colonne
    Par JPaul94300 dans le forum IHM
    Réponses: 1
    Dernier message: 16/06/2009, 17h02

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