Macro dans excel
Fermé
caillou66
Messages postés
2
Date d'inscription
vendredi 16 juin 2017
Statut
Membre
Dernière intervention
24 juin 2017
-
Modifié le 16 juin 2017 à 21:21
Luc - 24 juin 2017 à 15:58
Luc - 24 juin 2017 à 15:58
A voir également:
- Macro dans excel
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel - Guide
- Macro word - Guide
- Si et excel - Guide
4 réponses
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
17 juin 2017 à 11:59
17 juin 2017 à 11:59
Bonjour a tous,
Sans .Select et sans .copy
Sans .Select et sans .copy
Sub TransMoisNouv() ' TransMoisNouv Macro TR = Range("E10:E18").Value 'mise en memoire plage de cellules Workbooks.Open Filename:="C:\TransferV3.xlsx" Range("B10:B18") = TR 'copie mem plage Workbooks("TransferV3.xlsx").Save ' fermeture ou pas ?? End Sub Sub TransMoisPréc() ' TransMoisPréc Macro Workbooks.Open Filename:="C:\TransferV3.xlsx" TR = Range("B10:B18").Value Workbooks("TransferV3.xlsx").Close True Range("B10").Resize(9) = TR ActiveWorkbook.Save End Sub Sub MiseàZéro() ' MiseàZéro Macro Workbooks.Open Filename:="C:\TransferV3.xlsx" Range("B10:B18") = 0 Workbooks("TransferV3.xlsx").Close True End Sub 'Affiche/masque entete et grille Sub Action1() ActiveWindow.DisplayHeadings = Not ActiveWindow.DisplayHeadings ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines End Sub
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
16 juin 2017 à 22:32
16 juin 2017 à 22:32
bonsoir, sur quelle ligne de code l'erreur se produit-elle?
Essaye ce code VBA :
Merci de me dire si ça te convient.
Option Explicit Const NomX As String = "TransferV3.xlsx" Const FileX As String = "C:\" & NomX Sub TransMoisNouv() [E10:E18].Copy Workbooks.Open FileX: [B10:B18].PasteSpecial xlValues [D11].Select: ActiveWorkbook.Save: ActiveWindow.Close [G2].Select: Application.CutCopyMode = False End Sub Sub TransMoisPrec() Workbooks.Open FileX: [B10:B18].Copy ActiveWindow.WindowState = xlMinimized ActiveWindow.WindowState = xlMaximized [B10:B18].PasteSpecial xlValues: Windows(NomX).Activate Application.CutCopyMode = False: ActiveWindow.Close [G2].Select End Sub Sub MiseàZéro() Workbooks.Open FileX: [B10:B18] = 0: [B17].Select ActiveWorkbook.Save: ActiveWindow.Close End Sub Sub Action1() With ActiveWindow .DisplayHeadings = Not .DisplayHeadings .DisplayGridlines = Not .DisplayGridlines End With End Sub
Merci de me dire si ça te convient.
caillou66
Messages postés
2
Date d'inscription
vendredi 16 juin 2017
Statut
Membre
Dernière intervention
24 juin 2017
24 juin 2017 à 13:42
24 juin 2017 à 13:42
Bonjour,
Quand j'essaye avec ce code, dès la mise à zéro, il m'écrit :
Erreur d'eexécution '1004' :
Microsoft excel ne peut accéder au fichier : "C:\D518E400".
Plusieurs raisons sont possibles : ...
Et si je fais débogage, il va sur la ligne :
ActiveWorkbook.Save
Et il bloque sur l'enregistrement de transferV3.xlsx.
Merci de m'aider
Quand j'essaye avec ce code, dès la mise à zéro, il m'écrit :
Erreur d'eexécution '1004' :
Microsoft excel ne peut accéder au fichier : "C:\D518E400".
Plusieurs raisons sont possibles : ...
Et si je fais débogage, il va sur la ligne :
ActiveWorkbook.Save
Et il bloque sur l'enregistrement de transferV3.xlsx.
Merci de m'aider
Luc
>
caillou66
Messages postés
2
Date d'inscription
vendredi 16 juin 2017
Statut
Membre
Dernière intervention
24 juin 2017
24 juin 2017 à 15:58
24 juin 2017 à 15:58
Bonjour,
Sur ton énoncé initial, il y a dans ton code VBA 3× cette ligne :
Workbooks.Open FileName:="C:\TransferV3.xlsx"
Donc ton fichier est clairement "C:\TransferV3.xlsx", et mon
code VBA le reprend 1 seule fois en constante, en 2 étapes :
Étape 1
Const NomX As String = "TransferV3.xlsx"
sans C:\ devant, car dans la sub TransMoisPrec(), il y a :
Windows(NomX).Activate
Étape 2
Const FileX As String = "C:\" & NomX
avec C:\ devant, donc FileX = "C:\TransferV3.xlsx"
(=> même nom que celui de ton code initial),
et ensuite, FileX est utilisé plusieurs fois.
-------------------------------------------------------
Si le nom de fichier bloque, vérifie-le bien : c'est peut-être plutôt :
TransfertV3.xlsx ou TransfertV3.xlsm ?
Dans ce 2ème cas, mets :
Const NomX As String = "TransfertV3.xlsm"
-------------------------------------------------------
Vérifie aussi s'il est bien à la racine du disque dur : C:\
Si ton fichier est dans ton dossier Documents, mets :
Const FileX As String = "C:\Users\caillou66\Documents\" & NomX
à la place de Const FileX As String = "C:\" & NomX
-------------------------------------------------------
Voici d'ailleurs l'intérêt d'utiliser les 2 constantes NomX et FileX :
en cas de modif, il suffit d'adapter le code en un seul endroit
pour chaque : le nom de fichier et le dossier.
-------------------------------------------------------
Pourquoi donc as-tu une erreur pour ce fichier : "C:\D518E400"
alors qu'il n'est pas utilisé dans ton code initial (ni le mien) ?
De plus, s'il faut vraiment que ton code utilise ce fichier, ce serait
mieux d'indiquer l'extension ! exemple : "C:\D518E400.xlsm"
Si tu arrives à résoudre ces problèmes de nom de fichier (et les
dossiers dans lesquels ils sont), ton code devrait marcher.
Si oui, merci de l'indiquer, puis de passer le sujet en résolu.
À te lire.