Piloter importation Excel depuis Access en VBA
Bonjour le forum,
Je débute sur Access VBA et j'avoue que c'est un peu différent sur Excel. J'essaie de traduire le code VBA ci-dessous qui fonctionne très bien sur ma macro excel mais j'ai un problème lorsque je veux la lancer en code Access VBA. J'ai commencé sur Access avec le code ci-dessous (voir 2ème partie de ce message après les*******).
Code VBA ci-dessous qui fonctionne très bien sur excel :
Code:
1 2 3 4 5 6 7 8 9
| Sub test()
For s = 2 To Sheets.Count
Sheets(s).[A1].CurrentRegion.Offset(1, 0).Copy _
Sheets("consolidation").[A65000].End(xlUp).Offset(1, 0)
Next s
End Sub |
Ci-dessous le commencement de mon code sur Access mais je lorsque je veux consolider les feuille 1 à l'infini cela ne fonctionne pas ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Public Sub RunMacroImport ()
Dim xlApp As New Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim i As Long
Dim vtemp As Variant
'J'initialise mes variables
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:Report.xls")
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = "Consolidation" |
:mouarf:(je bloque ici lorsque je veux commencer avec une boucle : For xlSheet depuis feuille 1 à l'infini...):ccool:
Code:
1 2 3 4 5
| xlBook.Save
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing |
Si quelqu'un pourrait me donner un début de piste cela m'aiderait énormément...
Merci d'avance.
Suite : Pilotage VBA Access avec Excel
Rebonjour cyrgod,
Cela marche parfaitement vous êtes vraiement un expert. Par contre j'aimerais encore essayer d'ajouter encore ce morceau de code mais cela n'a pas l'aire de fonctioner pourriez-vous m'aider à nouveau :
Code:
1 2 3 4 5 6
| xlSheet("consolidation").Next.Activate ' Comment puis-je activer la prochaine feuille en VBA Access ?
xlSheet.Rows("1:1").Select
xlSheet.Copy
xlSheet("consolidation").Select
xlshhet.Rows("1:1").Select
xlSheet.Paste |
Ci-dessous le code qui fonctionne sur Vba excel :
Code:
1 2 3 4 5 6
| Sheets("consolidation").Next.Activate
Rows("1:1").Select
Selection.Copy
Sheets("consolidation").Select
Rows("1:1").Select
ActiveSheet.Paste |
Merci de votre aide à nouveau, je suis en train d'apprendre avec vous et le forum.
Joselito
Pilotage avec Access avec importation Excel
Citation:
Envoyé par
helas
Bonjour,
et avec
Code:
1 2
|
xlSheet("consolidation").Next.Select |
Bonjour,
J'ai juste changé le début de votre code par xlbook.sheets et maintenant cela a l'air de fonctionner. Avec xlsheet c'est bizarre un message d'erreur apparaît pourtant la variante a bien été déclarée. Maintenant j'ai un problème sur la ligne :calim2:Rows("1:1")paste. J'ai ajouter toute la procédure ci-dessous:
***************
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Public Sub RunMacroImport()
Dim xlApp As New Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim i As Long
Dim vtemp As Variant
'J'initialise mes variables
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("H:\Forecast\FICO Weekly Report.xls")
Set xlSheet = xlBook.Worksheets.Add
xlSheet.Name = "Consolidation"
For Each xlSheet In xlBook.Worksheets
If xlSheet.Name <> "Consolidation" Then
xlSheet.[A1].CurrentRegion.Offset(1, 0).Copy _
xlBook.Sheets("consolidation").[A65000].End(xlUp).Offset(1, 0)
End If
Next xlSheet
xlBook.Sheets("consolidation").Next.Select
Rows("1:1").EntireRow.Select
Rows("1:1").Copy
xlBook.Sheets("consolidation").Select
Rows("1:1").EntireRow.Select
Rows("1:1").Paste ' le problème est ici :cry:
xlBook.Save
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
MsgBox "Fin de la procédure. :)"
End Sub |
****************
Merci pour votre aide encore.
Joselito:mrgreen: