Salut,
je ne comprends pas pourquoi cette macro ne fonctionne pas : je bloque sur la copie du formulaire dans le nouveau fichier excel.
Mon classeur comprends deux onglets "Formulaire" et "Devis-suivi".
Dans un premier temps je copie les cellules du "formulaire" vers un tableau de suivi (ça fonctionne) sur l'onglet "Devis-suivi".
Dans un second temps je voudrais exporter la feuille "Formulaire" vers un nouveau classeur qui porterai le nom de la cellule [Cells(14, 3)].
Ci-joint le document.
Et le code :
Sub Devis()
Application.DisplayAlerts = False
'Identification de la dernière ligne non vide du tableau
l1 = 1
While Len(Sheets("Devis - Suivi").Cells(l1, 1)) > 0
l1 = l1 + 1
Wend
'MsgBox l1
'Copier les éléments du devis dans le tableau de suivi
Sheets("Devis - Suivi").Cells(l1, 1) = Sheets("Formulaire").Cells(14, 6) 'Objet
Sheets("Devis - Suivi").Cells(l1, 2) = Sheets("Formulaire").Cells(14, 3) ' Reference du devis
Sheets("Devis - Suivi").Cells(l1, 3) = Sheets("Formulaire").Cells(15, 6) 'G2R
Sheets("Devis - Suivi").Cells(l1, 4) = Sheets("Formulaire").Cells(15, 3) 'Technologie
Sheets("Devis - Suivi").Cells(l1, 12) = Sheets("Formulaire").Cells(4, 7) 'Destinataire
Sheets("Devis - Suivi").Cells(l1, 8) = Sheets("Formulaire").Cells(11, 2) 'Nom du RA
'Recherche de la cellule du montant selon les ajouts/suppression de ligne dans le devis
l2 = 22
While Sheets("Formulaire").Cells(l2, 5) <> "MONTANT TOTAL HT"
l2 = l2 + 1
Wend
'MsgBox l2
Sheets("Devis - Suivi").Cells(l1, 7) = Sheets("Formulaire").Cells(l2, 8) 'Montant
'Ouvrir un fichier Excel dans le repertoire courant
'Déplacer onglet dans le nouveau fichier Excel Ouvert
'OUverture et enregistrement du nouveau fichier
Sheets("Formulaire").Activate
Nom = Sheets("Formulaire").Cells(14, 3)
Fichiercopier = ActiveWorkbook.Name
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=Nom
FichierColler = ActiveWorkbook.Name
Workbooks(Fichiercopier).Activate
Sheets("Formulaire").Select
Sheets("Formulaire").Copy Before:=Workbooks(FichierColler).Sheets(1)
ActiveWorkbook.SaveAs Filename:=Nom
Application.DisplayAlerts = True
End Sub
Merci d'avance à tous ceux qui se penchent sur la question.
Partager