darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013
-
9 mai 2007 à 13:32
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
11 mai 2007 à 10:44
Bonjour,
S'il quelqu'un pouvait m'aider car j'ai un gros souci.
En fait j'ai créer un fichier Excel a partir d'une table provenant d'Acces. J'aimerais pouvoir refaire de la mise en page de ce fichier mais avec une macro contenu dans Acces ou remplacer les macro pars les commandes de controles copier coller faire des lignes déplacer etc...
voici ma macro dans Excel
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 08/02/2007 par
' Replace les cases
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 mai 2007 à 13:34
Salut,
Pilote Excel depuis Access en ajoutant la référence adéquate.
Microsoft Excel Object Library (ou un truc du style) tu pourras ainsi utiliser tout les objets Excel depuis Access
darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013 10 mai 2007 à 09:57
Bonjour,
justement voila ce que j'ai fait voici le code que j'ai généré car l'application est en dehors d'Excel. mais cela ne fonctionne pas
Si vous pouvez me dire quel est l'erreur je vous en serais reconnaissant.
Function Essai()
Dim MyExcel As Excel.Application
Set MyExcel = New Excel.Application
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 10 mai 2007 à 10:01
SAlut,
Déjà il y a quelque chose que je ne comprens pas
Ou est déclarer la variable xls (si elle l'est ) et de quelle type elle est?
Il semblerait qu'elle soit de type Excel.Application alors dans ce cas a quoi sert MyExcel....
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 10 mai 2007 à 10:30
Re,
Sais pas si ca t'aidera mais teste cela.
Option Explicit
Private XlApp As New Excel.Application
Private Wb As Workbook
Private Sub CutPasteRange(Source As Long)
'Coupe colle les valeur de source vers destination
With Wb.ActiveSheet
Call .Range("A" & CStr(Source)).Cut
Call .Range("A" & CStr(Source + 1)).Select
Call .Paste
End With
End Sub<hr />
Private Sub DeleteLine(Line As Long)
'Supprime la ligne passé en parametre
Call Wb.ActiveSheet.Rows(Line & ":" & Line).Delete(xlUp)
End Sub<hr />
Private Sub RangeClearContents(NumCell As Long)
'efface le contenu d'un selection
Call Wb.ActiveSheet.Range("C" & CStr(NumCell) & ":J" & CStr(NumCell)).ClearContents
End Sub<hr />
Private Sub RangeR1C1(RangeToSelect As String, Destination As String)
'place une formule
With Wb.ActiveSheet
.Range(RangeToSelect).Select
.Range(Destination).FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
End With
End Sub<hr />
Private Sub CopyPasteRange(Origine As Long, Destination As Long)
XlApp.CutCopyMode = False
With Wb.ActiveSheet
.Range("A" & Origine & ":J" & Origine).Copy
.Range("A" & Destination).Select
Call .Paste
End With
End Sub<hr />
Sub Macro1()
Dim i As Long
Dim j As Integer
' If Range("B17").Value = 0 Then Exit Sub
j = 23
For i = 2 To 18 Step 4
Call CopyPasteRange(i, 23)
j = j + 1
Next
For i = 2 To 18 Step 4
Call CutPasteRange(i)
Next
For i = 2 To 14 Step 3
Call DeleteLine(i)
Next
For i = 4 To 16 Step 3
Call RangeClearContents(i)
Next
For i = 2 To 14 Step 3
Call RangeR1C1("C" & i & ":J" & (i + 2), "C" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "D" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "E" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "F" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "G" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "H" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "I" & (i + 2))
Call RangeR1C1("C" & i & ":J" & (i + 2), "J" & (i + 2))
Next
End Sub<hr />
Private Sub Form_Load()
Set Wb = XlApp.Workbooks.Open("C:\Test.xls")
Call Macro1
Call Wb.Close(True)
Call XlApp.Quit
Set Wb = Nothing
Set XlApp = Nothing
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]
darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013 11 mai 2007 à 10:40
g pas poster le bon code c'est pour ca que les déclaration ne sont pas bonnee c'est juste a ce niveau que cela n'est pas bon mainteant le probleme est résolu
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 11 mai 2007 à 10:44
Salut,
De rien.
Si ton problème est résolu appuie sur réponse acceptée sur le ou les post qui ont pu t'aider.
(même si c'est un de tes post)
cela indiquera mieux que le problème est résolu sans avoir à tout lire