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 :

[E-03] Sélection plage+ copier/coller


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Par défaut [E-03] Sélection plage+ copier/coller
    Bonjour voici mon problème

    Je souhaiterai sélectionner une plage de lignes dont:
    La 1ere ligne est la ligne qui possède une cellule dont la valeur est égale à la valeur d'une autre cellule située sur un autre onglet.
    La derniere ligne est la dernière ligne non vide.

    Coller ensuite cette plage sur un autre onglet à partir de la derniere ligne non vide (donc supprimer cette derniere ligne non vide).

    Merci pour vos réponses.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 43
    Par défaut
    Salut,
    l'objet range permet de stocker une plage ...
    plusieurs pistes tu trouve la premiere ligne et la derniere et tu lui dis de prendre cette plage ou autre peut être que je me trompe je n'utilise pas trop l'objet range.
    HqSeO

  3. #3
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Par défaut
    J'ai essayé de prendre en compte ta remarke voici ma macro complète sans doute que cela vous aidera plus ca doit etre bourré d'erreurs

    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
    Sub Comparaison()
    '
    ' Comparaison Macro
    ' Macro enregistrée le 06/01/2009 par ytelali
    '
    Dim i, j As Integer
     
        Sheets("analyse").Select
        i = Range("A1").End(xlDown).Select
        Sheets("FI").Select
        j = Range("A1").End(xlDown).Select
            If i >= j Then
            End If
            If i < j Then
            Sheets("FI").Select
            Cells(i, 1).Select
            d = Rows(ActiveCell.Row).Select
            e = Cells(j, 1).Select
            Rows(ActiveCell.Row).Select
            Range("d,e").Select
            Selection.Copy
            Sheets("analyse").Select
            Range("A1").End(xlDown).Select
            Rows(ActiveCell.Row).Select
            ActiveSheet.Paste
            End If
    End Sub
    Mon but est en fait de comparer les valeurs de deux cellules de deux onglets différents.
    Selon le résultat, je doit selectionner dans l'onglet FI la plage qui va de :
    la ligne contenant la valeur i
    à la ligne contenant la valeur j (donc la derniere ligne de l'onglet FI).

    Jespere vous avoir éclairé un peut sur mon problème...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 43
    Par défaut
    tiens une piste pour comparer tes cellules (A1 ET A1) si les nom ne changent jamais, mais est tu sur que tu veut comparer une cellule ? ou une plage ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    if (thisWorkbook.worsheet("analyse").Range("A1") = thisWorkbook.worksheet("FI").Range("A1") ) then
            ...
    end if
    Pense à indenter ton code, voir à le commenter et si ca ne répond pas à tes questions alors réexplique le problème

    HqSeO

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 32
    Par défaut [E-03] Sélection plage+ copier/coller
    Bonjour,
    Voici le code que je te propose.
    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
     
    Sub atest()
    Dim valeur As String
    Application.ScreenUpdating = False
    valeur = ActiveCell.Value 'La valeur cherchée doit être sélectionnée
    Worksheets("F1").Activate
    On Error GoTo message1
    Cells.Find(What:=valeur, MatchCase:=False).Select
    ActiveCell.Offset(0, 1 - ActiveCell.Column).Select
    Range(Selection, Selection.End(xlDown)).EntireRow.Copy
    Worksheets("ongletresult").Activate
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveSheet.Paste
    Worksheets("ongletvaleur").Activate
    MsgBox ("Copie complétée")
    Exit Sub
    message1:
    Worksheets("ongletvaleur").Activate
    MsgBox ("Pas de concordance")
    End Sub
    Salutations

  6. #6
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Par défaut Ajout problème
    En fait j'effectue une opération avant de selectionner cette plage.

    Je compare en fait deux cellules de deux onglets selon le resultat obtenu j'effectue ou pas l'opération suivante voici ce que donne ma macro complete

    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
    29
    30
    31
    32
    33
    34
    35
    36
    Sub Comparaison()
    '
    ' Comparaison Macro
    ' Macro enregistrée le 06/01/2009 par ytelali
    '
     
    '
    Dim i, j As Integer
     
        Sheets("analyse").Select
        i = Range("A1").End(xlDown).Select
        Sheets("FI").Select
        j = Range("A1").End(xlDown).Select
            If i >= j Then
            End If
            If i < j Then
        Dim valeur As String
        Application.ScreenUpdating = False
        valeur = ActiveCell.Value 'La valeur cherchée doit être sélectionnée
        Worksheets("analyse").Activate
        On Error GoTo message1
        Cells.Find(What:=valeur, MatchCase:=False).Select
        ActiveCell.Offset(0, 1 - ActiveCell.Column).Select
        Range(Selection, Selection.End(xlDown)).EntireRow.Copy
        Worksheets("ongletresult").Activate
        Range("A1").Select
        Selection.End(xlDown).Select
        ActiveSheet.Paste
        Worksheets("ongletvaleur").Activate
        MsgBox ("Copie complétée")
        Exit Sub
        End If
    message1:
        Worksheets("analyse").Activate
        MsgBox ("Pas de concordance")
    End Sub

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

Discussions similaires

  1. [XL-2007] Copier coller des plages d'une sélection à la suite dans un autre tableau
    Par christinadeneva dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2015, 19h02
  2. copier coller plage cellule avec Offset
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2008, 14h03
  3. Copier/coller une plage de cellules pleine de trous
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/05/2008, 18h57
  4. Copier/Coller plage de donnée
    Par JeanMikael dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2007, 12h17
  5. Copier/coller de plages entre classeurs
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/09/2006, 06h01

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