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 Feuille Classeur B vers Classeur A - Nom de la feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut Copier Feuille Classeur B vers Classeur A - Nom de la feuille
    Bonjour � tous,

    J'ai un petit souci lors de la COPIE de deux Feuilles du classeur B vers le classeur A
    Ce tr�s cher Excel me renomme la feuille en feuille1. Pas le nom de l'onglet mais le vrai nom
    Nom : SnipImage.JPG
Affichages : 191
Taille : 5,2 Ko
    Voici le code ... Qu'est ce qui cloche ?
    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
    37
    38
    39
    40
    41
    Option Explicit
     
    Public Sub transdebut()
     
    Dim xlApp       As Excel.Application
    Dim wkA As Workbook, wkB As Workbook
     
    On Error GoTo Erreur
    Excel.Application.DisplayAlerts = False
     
    Set wkA = ThisWorkbook
     
    With wkA
        shthistorik.Delete
        shtDaten.Delete
    End With
     
    wkA.Save
     
    Workbooks.Open ("M:\Palettenfahnen\Erzeugte_pzt\DB_Pzt.xlsm")
     
    Set wkB = ActiveWorkbook
    wkB.Sheets("daten").Copy Before:=wkA.Sheets("Empfang")
    wkB.Sheets("Historik").Copy Before:=wkA.Sheets("Empfang")
    MsgBox "Daten sind aktualisiert", vbDefaultButton1
     
    wkB.Close False
     
    Excel.Application.DisplayAlerts = True
     
    With wkA
        Sheets("Historik").Visible = xlSheetHidden
        Sheets("daten").Visible = xlSheetHidden
    End With
     
    UsfEintrag.Show
     
    Exit Sub
     
    Erreur: Exit Sub
    End Sub

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salari�
    Inscrit en
    Ao�t 2014
    Messages
    1 373
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : salari�

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 1 373
    Par d�faut
    Bonjour Boldair, bonjour le forum,

    voir du cot� de Codename... peut-�tre comme �a :

    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
    Public Sub transdebut()
    Dim xlApp       As Excel.Application
    Dim wkA As Workbook, wkB As Workbook
     
    On Error GoTo Erreur
    Excel.Application.DisplayAlerts = False
    Set wkA = ThisWorkbook
    With wkA
        shthistorik.Delete
        shtDaten.Delete
    End With
    wkA.Save
    Workbooks.Open ("M:\Palettenfahnen\Erzeugte_pzt\DB_Pzt.xlsm")
    Set wkB = ActiveWorkbook
    wkB.Sheets("daten").Copy Before:=wkA.Sheets("Empfang")
    ActiveWorkbook.CodeName = "ShtDaten1"
    wkB.Sheets("Historik").Copy Before:=wkA.Sheets("Empfang")
    ActiveWorkbook.CodeName = "ShtEmpfang"
    MsgBox "Daten sind aktualisiert", vbDefaultButton1
    wkB.Close False
    Excel.Application.DisplayAlerts = True
    With wkA
        Sheets("Historik").Visible = xlSheetHidden
        Sheets("daten").Visible = xlSheetHidden
    End With
    UsfEintrag.Show
    Exit Sub
    Erreur: Exit Sub
    End Sub

  3. #3
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut
    Merci pour ton implication Thautheme...

    Malheureusement ca ne marche pas. Il me dit "erreur d'�criture", comme les feuilles �taient prot�g�es ...

    Bizarre

  4. #4
    R�dacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, d�veloppeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Formateur, d�veloppeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par d�faut
    Bonjour,
    A propos du code publi� � l'ouverture de la discussion et en lecture rapide (je n'ai pas examin� ton code)
    Lignes 13 et 16 ne servent � rien car tu utilises un CodeName et de toutes mani�res il n'y a aucun lien avec le bloc With
    Lignes 31 � 34, tu dois faire pr�c�der les objets Sheets par un point sinon pas de lien avec la variable objet wkA
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    With wkA
        .Sheets("Historik").Visible = xlSheetHidden
        .Sheets("daten").Visible = xlSheetHidden
    End With
    Il y a peut-�tre d'autres lignes qui posent probl�mes mais je n'ai pas tout lu
    Philippe Tulliez
    Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment. (Nicolas Boileau)
    Lorsque vous avez la r�ponse � votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez � voter
    Mes tutoriels : Utilisation de l'assistant � Insertion de fonction �, Les filtres avanc�s ou �labor�s dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour v�rifier l'existence d'un fichier

  5. #5
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut
    Ca avance � petit pas....

    J'ai modifi� le code d'apr�s ton aide en mettant des "."
    En m�me temps, j'ai mis les feuilles � supprimer en visible, puis DELETE
    J'ai aussi mit le code dans "WORKBOOK OPEN" et non un "module"

    Ca marche avec la feuille "daten" mais pas la feuille "historik"
    Il me la nomme dans le codename "historik1" ...

    Une autre piste. A la fin de la proc�dure, j'appel un USF qui est en liaison avec la feuille "historik"
    Tu en pense quoi ? C'est li� ?

    le code
    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
    37
    38
    39
    40
    Private Sub Workbook_Open()
     
    Dim wkA As Workbook, wkB As Workbook
     
    On Error GoTo Erreur
    Excel.Application.DisplayAlerts = False
     
    Set wkA = ActiveWorkbook
    With wkA
        .Sheets("historik").Visible = xlSheetVisible
        .Sheets("historik").Delete
        .Sheets("daten").Visible = xlSheetVisible
        .Sheets("daten").Delete
    End With
     
    Workbooks.Open ("M:\Palettenfahnen\Erzeugte_pzt\DB_Pzt.xlsm")
     
    Set wkB = ActiveWorkbook
    wkB.Sheets("daten").Copy Before:=wkA.Sheets("Empfang")
    wkB.Sheets("historik").Copy Before:=wkA.Sheets("Empfang")
    MsgBox "Daten sind aktualisiert", vbDefaultButton1
     
    wkB.Close False
     
    Excel.Application.DisplayAlerts = True
     
    With wkA
        .Sheets("historik").Visible = xlSheetHidden
        .Sheets("daten").Visible = xlSheetHidden
    End With
     
    UsfEintrag.Show
     
    Exit Sub
     
    Erreur:
    MsgBox "Daten sind nicht aktualisiert", vbDefaultButton1
    Exit Sub
     
    End Sub

  6. #6
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut
    Bingo, j'ai trouv� le probl�me.
    Mais je ne connais pas le rem�de

    A la fin de la proc�dure, j'appel un USERFORM

    D�s que j'enl�ve cette ligne, tout fonctionne correctement.
    Mais comment faire pour appeler un USF � la fin de la proc�dure ? (Ouverture du WORKBOOK)

  7. #7
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salari�
    Inscrit en
    Ao�t 2014
    Messages
    1 373
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : salari�

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 1 373
    Par d�faut
    Bonsoir le fil, bonsoir le forum,

    Commence par v�rifier la proc�dure d'initialisation de l'UserForm [
    Private Sub UserForm_Initialize()]. C'est souvent l� que se trouve le probl�me. Si il y a un bug � l'initialisation, l'UserForm ne s'ouvre pas et on peut penser que c'est la ligne UsfEintrag.Show qui pose probl�me...

  8. #8
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut
    Bonjour Thautheme,

    Merci pour ton commentaire, j'ai beau chercher, mais je vois pas le probl�me dans l'USF Intialize

    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
    Private Sub UserForm_Initialize()
     
    Select Case Verpackung.Value
     
            Case Is = ("Gewickelt")
                Lage.Visible = False
                VBlage.Visible = True
     
            Case Is = ("auf Stange")
                Lage.Visible = False
                VBlage.Visible = True
     
            Case Is = ("Plano (Roto5)")
                Lage.Visible = False
                VBlage.Visible = False
     
            Case Else
                Lage.Visible = True
                VBlage.Visible = True
     
    End Select
     
    End Sub
    Par contre, le probl�me est peut etre li� � ce bout de code en d�but ou dans USF Active
    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
     
    Option Explicit
    ' Déclaration des variables et constantes de portées module
    Enum StatusAuf ' Constantes énumérées Status
     Consultation = 0: Modify = 1: NewRec = 2
    End Enum
    Const StatusLabel As String = "Sehen;Ändern;Anlegen"
    Const appTitle As String = "Auftrag bearbeitung"
    Dim UserFormStatus As Byte ' Statut du type de travail (Consultation, Modify, NewRec)
    Dim CurrentRecord As Long  ' Enregistrement en cours
    Dim rng As Range           ' Plage de données traitée par le formulaire
    Dim lstStatusText() As String
    Dim user As String
    Dim datum As Date
     
     
    Private Sub UserForm_Activate()
     'InitVariable ' Initialisation des variables
     InitData     ' Initialisation liste des données + RowSource - Auftrag
     InitComboBox ' Initialisation ComboBox
     With Me      ' Initialisation de certains contrôles
     .cmdConfirm.Visible = False
     .cmdCancel.Visible = False
     .cboMember.Enabled = True
     .frmMember.Enabled = False
     End With
     
    End Sub

  9. #9
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salari�
    Inscrit en
    Ao�t 2014
    Messages
    1 373
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : salari�

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 1 373
    Par d�faut
    Bonjour le fil, bonjour le forum,

    Il te faut mettre des points d'arr�t sur la premi�re ligne de chaque proc�dure (Initialisation et Activation), lancer l'UserForm et faire tourner le code pas � pas (touche [F8]). Tu verras peut-�tre la ligne qui pose probl�me... Dans le code je ne vois rien qui me choque mais sans le fichier, difficile de faire plus...

  10. #10
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut
    Aha, ca se pr�cise de plus en plus.

    J'ai essay� toutes les mani�res possibles et inimaginables....

    J'ai une autre piste !
    -Quand j'ouvre mon fichier Excel, Workbook Open, il execute une proc�dure dans module. A la fin il y a ce code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    UsfEintrag.Show
    Exit Sub
    En gros, l'USF s'ouvre fait ca proc�dure INITIALIZE USF et retourne dans le module.
    Quitte le module et l'USF est ouvert.

    Quand le ferme l'USF avec un bouton que j'ai mis
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Private Sub cmdExit_Click()
     Unload Me ' Fermeture du UserForm
    End Sub
    Tout fonctionne � merveille

    Par contre si je ferme l'USF avec la croix en haut � droite, l'erreur se produit .... Quand je ferme excel et relance le tout ...

    Myst�re et boule de gomme ! Quelqu'un a une piste

  11. #11
    R�dacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, d�veloppeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Formateur, d�veloppeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par d�faut
    Bonjour,
    Tout fonctionne � merveille
    Par contre si je ferme l'USF avec la croix en haut � droite, l'erreur se produit .... Quand je ferme excel et relance le tout ...
    Myst�re et boule de gomme ! Quelqu'un a une piste
    Le code se trouvant en t�te de module du UserForm que tu as publi� dans le fil #8, provient de ma contribution USERFORM - Cr�er, Consulter, Modifier et Supprimer des enregistrements � l'aide d'un formulaire.
    Citer l'auteur d'un code que tu utilises n'est pas superflu et t'aurait sans doute permis d'obtenir une r�ponse plus rapide � ta derni�re question.
    Si tu as conserv� toutes les proc�dures �v�nementielles contenues dans mon code, il y en a une nomm�e UserForm_Terminate
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    Private Sub UserForm_Terminate()
     Set rng = Nothing
     MsgBox "Bye, bye"
    End Sub
    dont le code s'ex�cute aussi bien si tu cliques sur la croix de fermeture du UserForm que lorsque l'on clique sur le contr�le CommandButton nomm� cmdExit_Click

    Comme l'a tr�s justement soulev� "Thautheme", une erreur sur la ligne NomUserForm.Show se trouvant dans une proc�dure d'appel, ne signifie pas que l'erreur se produit dans cette derni�re mais plut�t dans une des proc�dures du UserForm lui m�me. La seule fa�on de le savoir est d'utiliser les outils de d�bogage (F8, F9, etc.).
    Philippe Tulliez
    Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment. (Nicolas Boileau)
    Lorsque vous avez la r�ponse � votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez � voter
    Mes tutoriels : Utilisation de l'assistant � Insertion de fonction �, Les filtres avanc�s ou �labor�s dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour v�rifier l'existence d'un fichier

  12. #12
    Membre confirm�
    Homme Profil pro
    Charg� d'affaire
    Inscrit en
    F�vrier 2016
    Messages
    100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Charg� d'affaire

    Informations forums :
    Inscription : F�vrier 2016
    Messages : 100
    Par d�faut
    Bonjour Philippe,

    Exact, je me suis permis de prendre ta contribution et de l'adapter � mes besoins.

    J'ai bien compris l'erreur, qui est dans le RANGE - rng qui est encore actif, c'est pour cela que la feuille est renomm�e...

    Merci en tout cas, le probl�me est r�gl�

    Bonne journ�e

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [XL-2010] Copier feuille de classeur A vers classeur B
    Par Mimosa777 dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 20/08/2012, 19h03
  2. R�ponses: 7
    Dernier message: 22/06/2011, 18h37
  3. Copier et coller d"un classeur Excel vers un autre
    Par Anthos59 dans le forum VB.NET
    R�ponses: 7
    Dernier message: 28/01/2011, 07h36
  4. [XL-2007] copier cellule classeur 1 vers classeur 2 (presque arriv�)
    Par re dans le forum Macros et VBA Excel
    R�ponses: 10
    Dernier message: 12/08/2009, 08h16
  5. R�ponses: 4
    Dernier message: 26/07/2007, 21h56

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