Macro dans excel
caillou66
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Luc -
Luc -
Bonsoir, Pour faire nos horaires nous utilisons excel avec macro depuis plus de 15 ans. Avant certaines macros fonctionnait dans excel 2000 et maintenant dans le 10 cela ne fonctionne plus et il me met comme erreur :
Erreur d'eexécution '1004' :
Microsoft excel ne peut accéder au fichier : "C:\D518E400".
Plusieurs raisons sont possibles : ...
Voici ci-dessous la macro :
Comment récrire cela pour que cela fonctionne sous excel 2010.
Merci d'avance et bonne soirée.
Erreur d'eexécution '1004' :
Microsoft excel ne peut accéder au fichier : "C:\D518E400".
Plusieurs raisons sont possibles : ...
Voici ci-dessous la macro :
Sub TransMoisNouv() ' ' TransMoisNouv Macro ' Macro enregistrée le 20/01/03 par P.S. ' ' Range("E10:E18").Select Selection.Copy Workbooks.Open FileName:="C:\TransferV3.xlsx" Range("B10:B18").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("D11").Select ActiveWorkbook.Save ActiveWindow.Close Range("G2").Select Application.CutCopyMode = False End Sub Sub TransMoisPréc() ' ' TransMoisPréc Macro ' Macro enregistrée le 20/01/03 par P.S. ' ' Workbooks.Open FileName:="C:\TransferV3.xlsx" Range("B10:B18").Select Selection.Copy ActiveWindow.WindowState = xlMinimized ActiveWindow.WindowState = xlMaximized Range("B10:B18").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Windows("TransferV3.xlsx").Activate Application.CutCopyMode = False ActiveWindow.Close Range("G2").Select End Sub Sub MiseàZéro() ' ' MiseàZéro Macro ' Macro enregistrée le 19/01/03 par P.S. ' ' Workbooks.Open FileName:="C:\TransferV3.xlsx" Range("B10").Select ActiveCell.FormulaR1C1 = "0" Range("B11").Select ActiveCell.FormulaR1C1 = "0" Range("B12").Select ActiveCell.FormulaR1C1 = "0" Range("B13").Select ActiveCell.FormulaR1C1 = "0" Range("B14").Select ActiveCell.FormulaR1C1 = "0" Range("B15").Select ActiveCell.FormulaR1C1 = "0" Range("B16").Select ActiveCell.FormulaR1C1 = "0" Range("B17").Select ActiveCell.FormulaR1C1 = "0" Range("B18").Select ActiveCell.FormulaR1C1 = "0" Range("B17").Select ActiveWorkbook.Save ActiveWindow.Close End Sub Sub Action1() If ActiveWindow.DisplayHeadings = False And ActiveWindow.DisplayGridlines = False Then ActiveWindow.DisplayHeadings = True ActiveWindow.DisplayGridlines = True Else ActiveWindow.DisplayHeadings = False ActiveWindow.DisplayGridlines = False End If End Sub
Comment récrire cela pour que cela fonctionne sous excel 2010.
Merci d'avance et bonne soirée.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Macro dans excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
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
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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.
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
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.