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 :

Copier un range dans un autre classeur


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
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Par défaut Copier un range dans un autre classeur
    Bonjour à tous.

    Voilà maintenant de nombreuses heures que je bute sur un problème que je n'arrive pas à surmonter.

    J'ai un classeur avec deux feuilles, nommées "Base" et "Classlist".
    Sur la feuille "Base", il y a un bouton avec du code VBA, et je cherche grâce à ce bouton à sélectionner une plage de cellules dans "Classlist" et à aller la coller dans un autre classeur que je crée entre temps.

    Voici le code utilisé :

    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
    Sub GenerateCorr()
     
    Dim myRange As Range
     
    '---------------------------------------------------------------
    nomFichier = Feuil1.Range("D6").Value
    DateExam = Feuil1.Range("D8").Value
     
    With Sheets("Classlist")
        Set myRange = Range(Cells(2, 2), Cells(14, 4))
    End With
     
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:="C:\Outprint\" & nomFichier & " - " & DateExam & ".xlsm", FileFormat:=52
     
    Application.DisplayAlerts = False
    Worksheets("Feuil1").Name = nomFichier
    Worksheets("Feuil2").Delete
    Worksheets("Feuil3").Delete
    Application.DisplayAlerts = True
     
    Range(Cells(12, 16), Cells(25, 18)).Value = myRange
     
    End Sub
    Il n'y a pas de message d'erreur, mais mon range de cellules ne s'affiche pas dans le nouveau classeur.
    Pour info, mon nouveau classeur se crée correctement, avec le bon nom, le bon nom de feuille, etc...

    Merci d'avance pour votre coup de main !

    Cordialement

    Timmal

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,


    déjà revoir l'utilisation de With ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("Classlist")
        Set myRange = .Range(.Cells(2, 2), .Cells(14, 4))
    End With
    il manque les points "." définissant ou utilisé l'objet instancié par le with

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Par défaut
    Bonjour Bbil,

    Tout d'abord, merci de votre réponse.

    Je l'avais déjà essayé, je l'ai réessayé à l'instant et malheureusement, le résultat est toujours le même.

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour,
    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
    Sub GenerateCorr()
     
    Dim myRange As Range
    Dim wb As Workbook
    '---------------------------------------------------------------
    nomFichier = Feuil1.Range("D6").Value
    DateExam = Feuil1.Range("D8").Value
    With Sheets("Classlist")
        Set myRange = .Range(.Cells(2, 2), .Cells(14, 4))
    End With
    Set wb = Workbooks.Add
    Application.DisplayAlerts = False
    myRange.Copy
    wb.Worksheets("Feuil1").Cells(12, 16).PasteSpecial Paste:=xlPasteValues
    wb.Worksheets("Feuil2").Delete
    wb.Worksheets("Feuil3").Delete
    Worksheets("Feuil1").Name = nomFichier
    Application.DisplayAlerts = True
    wb.SaveAs Filename:="C:\Outprint\" & nomFichier & " - " & DateExam & ".xlsm", FileFormat:=52
     
     
    End Sub

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Par défaut
    Bonjour rdurupt,

    Nous avons déjà fait un pas en avant dans la résolution, et rien que pour ça, je vous remercie

    En revanche, il se passe quelque chose que je ne comprends pas.

    Après avoir cliqué sur le bouton, je vois apparaitre une classeur "temporaire" avec mon range qui y est collé...
    Mais ce n'est que par la suite que s'ouvre le nouveau classeur. Et les valeurs du range n'y sont pas en revanche dans celui-ci.

    Ca fait en quelque sorte comme un pop-up, je vois apparaitre les valeurs dans un classeur, et une fraction de secondes après, un nouveau classeur s'ouvre, celui que l'on a généré.

    Merci de votre aide !

  6. #6
    Invité
    Invité(e)
    Par défaut
    je ne voie pas dans ton code que j'ai repris l'ouverture d'un deuxième classeur????

Discussions similaires

  1. [XL-2010] Copier les données dans un autre classeur
    Par idhmida dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2013, 15h17
  2. Réponses: 1
    Dernier message: 29/01/2013, 10h42
  3. [XL-2002] Macro pour copier une feuille dans un autre classeur
    Par JBeaunez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2012, 21h46
  4. [XL-2007] Erreur pour copier plusieurs feuilles dans un autre classeur
    Par manu900 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/02/2012, 09h31
  5. [XL-2003] Copier une feuille dans un autre classeur
    Par mistermail dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2009, 18h06

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