Macro dans excel
caillou66
Messages postés
2
Statut
Membre
-
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
- Si ou excel - Guide
- Déplacer colonne 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
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
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.