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 :

copie de cellules sous conditions [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut copie de cellules sous conditions
    Bonjour,
    Je reprends les données téléphonique d'un opérateur.
    Mon but :
    - extraire des infos pour une trentaine de numéro différents dans classeur1
    - copier les cellules concernés dans un classeur "arrive"


    Le classeur1 se compose de 2 feuilles :
    - Montants facturés par carte
    - Durées par carte

    Voilà mon exemple de code pour rechercher 1 seul numéro :
    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
    Sub Macro5()
    '
    ' Macro5 Macro
    '
    
    '
        Workbooks.Open "C:\arrive.xlsx"
        
        Windows("Classeur1.xls").Activate
            Sheets("Montants facturés par carte").Select
            
            For Each cel In Sheets("Montants facturés par carte").Range("C3:C" & Sheets("Montants facturés par carte").Range("C800").End(xlUp).Row)
                If UCase(cel) = 0607080910 Then
                    ActiveCell.Offset(0, 11).Select
                    Selection.Copy
                 
        Windows("arrive.xlsx").Activate
            Sheets("feuil1").Select
                Range("A1").Select
                ActiveSheet.Paste
                
                End If
            Next
        End Sub
    Le problème, c'est que je veux copier la 11ème cellule (à droite) du numéro recherché (0607080910)

    help ....

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bonjour gaauthier,

    Je reprends ta macro en évitant les Select :

    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
    ' Macro5 Macro
    '
     
    '
        Workbooks.Open "C:\arrive.xlsx"
     
        Windows("Classeur1.xls").Activate
            Sheets("Montants facturés par carte").Select
     
            For Each cel In Sheets("Montants facturés par carte").Range("C3:C" & Sheets("Montants facturés par carte").Range("C800").End(xlUp).Row)
                If UCase(cel) = 0607080910 Then
                    Range(cel.adress).Offset(0, 11).Copy
                    Windows("arrive.xlsx").Activate
                    Sheets("feuil1").Range("A1").Paste
                End If
            Next
    End Sub
    Est-ce que cela correspond à ce que tu attends ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut
    quand je test ton code, cela me renvoie une erreur :

    erreur d'execution '438'
    propriété ou méthode non gérées par cet objet
    référence de ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(cel.adress).Offset(0, 11).Copy
    Je veux que dès qu'il remarque la cellule ou il y a le numéro de téléphone 0607080910

    qu'il copie la 11ème cellule (droite) dans l'autre classeur

    je veux une espèce de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cellulecible.offset(0,11).copy

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Désolé, faute de frappe, voici le code corrigé

    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
    Sub Macro5()
    '
    ' Macro5 Macro
    '
        Workbooks.Open "C:\arrive.xlsx"
     
        Windows("Classeur1.xls").Activate
            Sheets("Montants facturés par carte").Select
     
            For Each cel In Sheets("Montants facturés par carte").Range("C3:C" & Sheets("Montants facturés par carte").Range("C800").End(xlUp).Row)
                If UCase(cel) = "0607080910" Then
                    Range(cel.Address).Offset(0, 11).Copy
                    Windows("arrive.xlsx").Activate
                    Sheets("feuil1").Paste
                End If
            Next
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Par défaut
    ça à l'air de fonctionner,
    je met ça au point pour demain et je te dis si ca marche.

    en tout cas, merci beaucoup du coup de main !

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    cel est un objet Range.
    Pourquoi, dans cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(cel.Address).Offset(0, 11).Copy
    en extraire l'adresse pour recréer un Range?

    Il est plus correct d'écrire ainsi:
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [XL-2007] Copie cellule sous condition d'une feuille sur une autre en VBA
    Par Natchway dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/01/2015, 17h12
  2. Copie cellule sous condition
    Par John Parker dans le forum Excel
    Réponses: 10
    Dernier message: 05/07/2013, 08h18
  3. [XL-2010] Copie de cellules sous conditions en boucles
    Par viper37 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/07/2011, 16h36
  4. [XL-2003] Copie de cellules sous condition
    Par pheonix00fr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/11/2010, 22h03
  5. Copie de cellules selon conditions
    Par frisette68 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/03/2008, 20h31

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