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 :

[EXCEL 2010] copier coller marche une fois sur deux


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Points : 45
    Points
    45
    Par défaut [EXCEL 2010] copier coller marche une fois sur deux
    Bonjour,

    quelqu'un connait un autre moyen d'exprimer mon copier coller ci dessous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("D1").Copy Destination:=Range("K1")
    Car il ne marche qu'une fois sur deux ( sur plus de 200 fichiers c 'est embêtant )

    Merci beaucoup

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 127
    Points : 9 956
    Points
    9 956
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si tu faisais référence explicitement aux plages que tu copies et aux plages où tu colles, ça n'irait pas mieux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Nom Du Classeur").Worksheets("Nom De La Feuille").Range("D1").Copy Destination:=Workbooks("Nom Du Classeur").Worksheets("Nom De La Feuille").Range("K1")

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Points : 45
    Points
    45
    Par défaut
    Merci pour la réponse, mais non car ma macro principale appel de nombreux classeurs :

    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
     
    Option Explicit
    Sub Test()
    Dim Plage As Range, InpRng As Range
    Dim Cel As Range
    'On Error GoTo Err_Read
    Dim Derl As Long
    Derl = ThisWorkbook.Worksheets("Feuil1").Range("A" & Cells.Rows.Count).End(xlUp).Row
    Set InpRng = ThisWorkbook.Worksheets("Feuil1").Range("A2:A" & Derl)
    Debug.Print InpRng.Address, InpRng.Cells.Count
    For Each Cel In InpRng
        If Trim("" & Cel) <> "" Then Histo CStr(Cel) Else MsgBox Cel.Address & " invalide"
    Next
    End Sub
    Sub Histo(Fichier As String)
    Dim Sh As Worksheet
    Dim wb As Workbook
    Application.DisplayAlerts = False
    Set wb = Workbooks.Open(Fichier)
    Application.DisplayAlerts = True
    For Each Sh In wb.Sheets
        TraitementSheet Sh
    Next
    wb.Save
    wb.Close
    End Sub
    Sub TraitementSheet(Sh As Worksheet)
    Dim Plage As Range
    Dim Cel As Range
    If UCase(Left(Sh.Name, 5)) <> UCase("Valor") Then Exit Sub
       Range("D1").Copy Destination:=Range("K1")

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 127
    Points : 9 956
    Points
    9 956
    Billets dans le blog
    5
    Par défaut
    tu utilises déjà des variables pour tes classeurs dans ton code !
    Wb,Sh

    tu utilises mêmes des arguments Sh dans certaines procédures

    alors il est tout à fait possible, en quelques lignes, d'intégrer la référence au classeur

    d'ailleurs, tes Sub Histo et Traitements peuvent très bien s'intégrer dans ta Sub Test, ce qui facilitera encore plus la manipulation de tes variables

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Points : 45
    Points
    45
    Par défaut
    Je ne sais pas du tout faire...

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 127
    Points : 9 956
    Points
    9 956
    Billets dans le blog
    5
    Par défaut
    Voici un code qui réunis tes trois procédure et où chaque range est bien rattaché à une feuille

    on est bien d'accord que chaque couple des cellule D1 et K1 est à chaque fois sur la même feuille et dans le même classeur ?

    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
    Option Explicit
    Sub Test()
    Dim Plage As Range, InpRng As Range
    Dim Cel As Range
    Dim Derl As Long
    Dim Wb As Workbook
    Dim Sh As Worksheet
     
    Derl = ThisWorkbook.Worksheets("Feuil1").Range("A" & Cells.Rows.Count).End(xlUp).Row
    Set InpRng = ThisWorkbook.Worksheets("Feuil1").Range("A2:A" & Derl)
     
    For Each Cel In InpRng
        If Trim("" & Cel) <> "" Then
            Application.DisplayAlerts = False
            Set Wb = Workbooks.Open(Cel)
            Application.DisplayAlerts = True
            For Each Sh In Wb.Sheets
                If UCase(Left(Sh.Name, 5)) = UCase("Valor") Then
                    Sh.Range("D1").Copy Sh.Range("K1")
                End If
            Next Sh
     
            Wb.Close True
     
        Else
            MsgBox Cel.Address & " invalide"
        End If
    Next
     
    End Sub

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Points : 45
    Points
    45
    Par défaut
    C'est génial , ça marche parfaitement bien !
    Merci beaucoup et bonne fin de journée !

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

Discussions similaires

  1. NamedQuery qui marche une fois sur deux
    Par Damascus06 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/12/2010, 15h41
  2. Réponses: 3
    Dernier message: 29/01/2009, 10h45
  3. le repaint() marche une fois sur deux
    Par atha2 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 08/08/2007, 14h19
  4. Fermer une fenetre : ça marche une fois sur deux
    Par floanne dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/05/2007, 13h27
  5. Pb : malloc qui marche une fois sur deux .... ?
    Par guillaume_pfr dans le forum C
    Réponses: 14
    Dernier message: 21/07/2003, 09h52

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