Exporter des cellules dans un classeur fermé [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
8 février 2017
-
Messages postés
10
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
8 février 2017
-
Bonjour,
Après plusieurs recherche sur internet et des essais non concluant, je viens vers vous pour m'aider :

Je voudrais faire une macro VBA :

'Sur le classeur source (FeuilleSource)
'Remplir les éléments en cellule A1, B3, C2 et A10
'Cliquer sur le bouton imprimer
'Copie des éléments
' ouverture du classeur cible (FeuilleCible)
' aller à la première ligne non vide
' Collage des éléments
' Enregistrement du classeur cible
' Fermeture du classeur cible
' Revenir sur le classeur source
'Ouvrir une msgbox
'demander si nous voulons effacer les données du tableau après impression sans enregistrement ?
'Oui
' Imprimer le tableau
' Effacer
'Non
'Imprimer le tableau
'ouverture de la fenêtre d'enregistrement
'effacer le tableau
'retourner sur le tableau

Ce que j'ai essayé de faire :

Sub Feuilles()

Dim FeuilleSource As Excel.Worksheet, FeuilleCible As Excel.Worksheet
Dim NomSource As String, NomCible As String
Dim NumLigne As Long

NomSource = "C:\Users\S045000\Desktop\FeuilleSource.xlsm"
NomCible = "C:\Users\S045000\Desktop\FeuilleCible.xlsm"

    Set FeuilleCible = Workbooks.Open(NomCible).Worksheets("Feuil2")
    Set FeuilleSource = Workbooks(NomSource).Worksheets("Feuil1")
    
    NumLigne = FeuilleCible.Range("A1048576").End(xlUp).Row + 1
 
    With FeuilleSource
FeuilleSource.Range("A1").Copy

With FeuilleCible
FeuilleCible.Range("A" & LastRow + 1).PasteSpecial xlPasteValues
    
    ActiveWorkbook.Save
    ActiveWindow.Close
    
  
     Application.ScreenUpdating = False
    Set FeuilleCible = Nothing
    Set FeuilleSource = Nothing

End Sub
Mais ça ne fonctionne pas ...

Merci de m'apporter votre aide.
Cordialement

1 réponse

Messages postés
16212
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 septembre 2020
3 035
Bonjour

"Lastrow" non défini !

NumLigne = FeuilleCible.Range("A1048576").End(xlUp).Row + 1 

With FeuilleSource
FeuilleSource.Range("A1").Copy

With FeuilleCible
FeuilleCible.Range("A" & LastRow + 1).PasteSpecial xlPasteValues


deviendrait
NumLigne = FeuilleCible.Range("A1048576").End(xlUp).Row + 1 

FeuilleSource.Range("A1").Copy

FeuilleCible.Range("A" & numligne).PasteSpecial xlPasteValues


lignes inutiles:
Application.ScreenUpdating = False 
Set FeuilleCible = Nothing
Set FeuilleSource = Nothing

 Michel
Messages postés
10
Date d'inscription
mercredi 3 février 2016
Statut
Membre
Dernière intervention
8 février 2017

Merci beaucoup mais dans l’après midi j'ai fais ça :

Distribution étant la feuille cible et fiche détection la feuille source

Sub Export_des_données_BDD()
Dim LastRow As Long

'Activer le classeur de destination
Workbooks.Open Filename:="I:\GPCHAUSR\DISTRIBUTION_FICHE.xlsm"

LastRow =Workbooks("DISTRIBUTION_FICHE.xlsm").Worksheets("Fiche_CR").Range("A" & Rows.Count).End(xlUp).Row


Workbooks("FICHE_DETECTION.xlsm").Worksheets("Fiche").Range("B4").Copy 'date de la fiche 'Copier les cellules désirées
Workbooks("DISTRIBUTION_FICHE.xlsm").Worksheets("Fiche_CR").Range("A" & LastRow + 1).PasteSpecial xlPasteValues 'Coller les cellules


'quitter le mode de copie (
Application.CutCopyMode = False

ActiveWorkbook.Save
ActiveWindow.Close


Application.ScreenUpdating = False


End Sub


Voila, ça fonctionne sur mon PC lorsque que j'utilise le classeur source (FICHE_DETECTION), MAIS des lors que je l'envoie par mail a mon collègues et qu'il l'utilise sur son poste, ca ne fonctionne pas ALORS que le fichier Cible ("DISTRIBUTION_FICHE") est sur un serveur partagé ...
Pourquoi chez mes collègue ça ne fonctionne?