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 :

probleme de "coller"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 6
    Par défaut probleme de "coller"
    bonjour
    j'ai une macro toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub essai()
    ActiveSheet.Range("A5").CurrentRegion.Rows("2:" & ActiveSheet.Range("A5").CurrentRegion.Rows.Count - 1).Select
    Selection.Copy
    Workbooks.Open Filename:="D:\Documents\excel\autreclasseur.xls"
    Sheets(1).Select
    ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).Select
    Selection.Paste
    ActiveWorkbook.Save
    End Sub
    a chaque execution "Selection.Paste" se termine en erreur 438 proprieté ou methode non geree par l'objet.
    je connais pas le VBA et je cherche a faire simple mais la je ne trouve pas ce qui va pas

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Remplace par et dis-moi si ça marche.

    Par contre tes sont assez compliqués. Que veux-tu exactement sélectionner ? Tu peux aussi les remplacer par des .

  3. #3
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    A mon avis cela vien du Userange qui selon moi n'a pas grand chose a faire ici
    Essaye cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("autreclasseur.xls").Sheets(1).Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).Paste
    A la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets(1).Select
    ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).Select
    Selection.Paste
    Au passage évite les select ca ralentie le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XXX.select
    selection.YYYY
    se remplace le plus souvent par

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour addes DeaD78 Krovax le forum hormis les pb... de sélect et simplifications
    pour que cela marche déja écris comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub essai()
    ActiveSheet.Range("A5").CurrentRegion.Rows("2:" & ActiveSheet.Range("A5").CurrentRegion.Rows.Count - 1).Select
    Selection.Copy
    Workbooks.Open Filename:="D:\Documents\excel\autreclasseur.xls"
     
    Sheets(1).Select
    ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).Select
     ActiveSheet.Paste
     Application.CutCopyMode = False
    ActiveWorkbook.Save
    End Sub

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 6
    Par défaut
    tout ça est un peu flou pour moi mais effectivement deja en utilisant tout simplement le : ActiveSheet.Paste ça marche bien

    apres j'ai pas chercher a automisé mon code.

    le but de mon code et de selectionné les ligne d'un tableau de longueur variable commençant a la cellule A1 sans prendre la premiere ligne de titre et la derniere ligne de total pour copier le tout dans un autre fichier

    merci a tous

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Tu n'a probablement pas controller la plage que tu copie ??
    1°) tu commence par A5, donc je suppose que tu veux commencer la copie à partir de la ligne 5 ? or la sélection démarre à la ligne 2, mais ça n'est que supposition.
    2°) Par contre la sélection de fin omet la dernière ligne.. Est-ce voulu ?
    Et ci-dessous un code "optimiser" avec la plage de la ligne 5 à la dernière comprise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Essai2()
    Dim plage As Range
        Set plage = ActiveSheet.Range("A5").CurrentRegion.Rows("5:" & ActiveSheet.Range("A5").CurrentRegion.Rows.Count)
        Workbooks.Open Filename:="D:\Documents\excel\autreclasseur.xls"
        Sheets(1).Select 'au cas ou ce ne serait pas la 1 qui est active
        plage.Copy ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1)
        ActiveWorkbook.Save
    End Sub
    A+

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 6
    Par défaut
    j'ai pas essayé le code la et en plus je connais pas l'utilisation de page, par contre un truc me surprend:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Range("A5").CurrentRegion.Rows("5:" &..
    bah si on fait ça on lui dit que la selection commence sur la region de la cellule A5 mais qu'on ne selection qu'a partir de la 5 eme ligne de cette region.

    sinon en effet le but et de prendre la region englobant la cellule A5 sans prendre ni la premiere ni la derniere ligne, ce qui explique d'un coté le et de l'autre le
    arrivé la j'ai fait 90 % du boulot mais un truc me chagrine: il arrive que dans ma region entre la ligne d'entéte et la ligne de totaux final j'ai des lignes vides lié au pré formatage model de la region, ya t'il une solution simple pour supprimé ses lignes vide afin de ne pas les avoir dans le compte rendu?

    ps: pour ce qui veulent se faire une image, imaginé un formulaire excel de commande, dans la page ya un tas d'info, la on s'interrense qu'a la parti details des achats, on copie tout les lignes saisie par l'utilisateur pour le reporté dans un fichier qui repertorie toute les commandes passé (donc sans la lignes d'entéte et sans la ligne total de chaque client)

Discussions similaires

  1. [MySQL] Problème de rquête avec Quôte
    Par yom17 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/10/2006, 10h58

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