Erreur dans mon code VBA

Fermé
Donaldidi Messages postés 1 Date d'inscription lundi 30 novembre 2015 Statut Membre Dernière intervention 30 novembre 2015 - Modifié par Donaldidi le 30/11/2015 à 12:09
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 1 déc. 2015 à 11:53
Bonjour à tous,

Je débute en VBA et beaucoup de choses m'échappent, quelqu'un peut-il me dire ce qui cloche dans mon code ci-dessous. Apparemment ça viendrait de ma formule If, plus précisément ma ligne (ActiveSheet.Paste)

concrètement dans un fichier Excel, j'ai une BDD clients avec laquelle je dois remplir 3 documents différents (situés dans 3 onglets différents de ce même fichier), une fois ces docs remplis avec mes champs (Field 1 2 3 4 5), je souhaite que chacun de ces docs ouvre une nouvelle page Excel, copie/colle le doc rempli, et l'enregistre dans le bon dossier.

voici mon encodage VBA:

Sub AdR_HMM()
'
' AdR_HMM Macro
'

'Stocke les feuilles dans variable
Application.ScreenUpdating = False

Dim ActWbk As Workbook
Set ActWbk = ActiveWorkbook

Dim ActSht As Worksheet

Set ActSht = Sheets(1)

ActSht.Select


'For Each cell In ActRange
Dim i As Integer, Msg As String
i = 2
Dim Field1 As String, Field2 As String, Field3 As String, Field4 As String, Field5 As String
Dim SheetName As String
Dim FileNm As String
Dim xlapp As Application, xlBook As Workbook


While ActSht.Cells(i, 1).Value <> ""

ActWbk.Activate
Set ActSht = Sheets(1)
ActSht.Select

'Stocke les valeurs a copier dans variables



Field1 = ActSht.Cells(i, 11).Value
Field2 = ActSht.Cells(i, 5).Value
Field3 = ActSht.Cells(i, 25).Value
Field4 = ActSht.Cells(i, 24).Value
Field5 = ActSht.Cells(i, 6).Value

SheetName = "AdR_" & Field4

MsgBox (SheetName)

If ActSht.Cells(i, 24).Value = "HMM" Then

Set ActSht = Sheets(SheetName)

ActSht.Select

'Copie les valeur dans le formulaire

ActSht.Cells(1, 17).Value = Field1
ActSht.Cells(2, 3).Value = Field2
ActSht.Cells(3, 3).Value = Field5
ActSht.Cells(36, 3).Value = Field3
ActSht.Cells(37, 3).Value = Field4

'sauve le formulaire

Sheets(SheetName).Select
ActiveSheet.Copy
FileNm = "K:\Service\PLAN-DE-PREVENTION\CONTRATS\0-NOUVEAUX DOCUMENTS 2016\AdRenCours\AdR-2016\HMM\" & Field1 & ".xlsx"

Set xlapp = CreateObject("Excel.Application")
Set xlBook = xlapp.Workbooks.Add

xlBook.Worksheets(1).Select
ActiveSheet.Paste


ActiveWorkbook.SaveAs Filename:=FileNm _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close


End If

If ActSht.Cells(i, 24).Value = "ARM_Nord" Then

Set ActSht = Sheets(SheetName)

ActSht.Select

'Copie les valeur dans le formulaire

ActSht.Cells(1, 17).Value = Field1
ActSht.Cells(2, 3).Value = Field2
ActSht.Cells(3, 3).Value = Field5
ActSht.Cells(36, 3).Value = Field3
ActSht.Cells(37, 3).Value = Field4

'sauve le formulaire

Sheets(SheetName).Select
ActiveSheet.Copy
FileNm = "K:\Service\PLAN-DE-PREVENTION\CONTRATS\0-NOUVEAUX DOCUMENTS 2016\AdRenCours\AdR-2016\ARM_Nord\" & Field1 & ".xlsx"

Set xlapp = CreateObject("Excel.Application")
Set xlBook = xlapp.Workbooks.Add

xlBook.Worksheets(1).Select
ActiveSheet.Paste


ActiveWorkbook.SaveAs Filename:=FileNm _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close


End If

If ActSht.Cells(i, 24).Value = "ARM_Sud" Then

Set ActSht = Sheets(SheetName)

ActSht.Select

'Copie les valeur dans le formulaire

ActSht.Cells(1, 17).Value = Field1
ActSht.Cells(2, 3).Value = Field2
ActSht.Cells(3, 3).Value = Field5
ActSht.Cells(36, 3).Value = Field3
ActSht.Cells(37, 3).Value = Field4

'sauve le formulaire

Sheets(SheetName).Select
ActiveSheet.Copy
FileNm = "K:\Service\PLAN-DE-PREVENTION\CONTRATS\0-NOUVEAUX DOCUMENTS 2016\AdRenCours\AdR-2016\ARM_Sud\" & Field1 & ".xlsx"

Set xlapp = CreateObject("Excel.Application")
Set xlBook = xlapp.Workbooks.Add

xlBook.Worksheets(1).Select
ActiveSheet.Paste


ActiveWorkbook.SaveAs Filename:=FileNm _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close


End If
i = i + 1
Wend

End Sub

MERCI A TOUS POUR VOTRE AIDE

@+
A voir également:

1 réponse

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
1 déc. 2015 à 11:53
Bonjour,

A priori cela devrait fonctionner.
Erreur sur l'instruction "ActiveSheet.Paste" ?
Merci de nous dire quel est le message d'erreur exactement ?
0