OVH Cloud OVH Cloud

Une copie de feuille fait planter ma macro

3 réponses
Avatar
Yoyo
Bonjour j'ai un petit probl=E8me avec une macro. (D=E9sol=E9 de remettre
un post sur ce sujet, j'ai appliqu=E9 toute les proposition qui m'on
=E9t=E9 faite, mais je n'ai trouv=E9 la solution =E0 mon probl=E8me, alors
peut =EAtre en le reformulant ce sera mieux et encore merci pour votre
aide)

Voila elle fonctionne bien une fois sur deux
elle plante au moment de la copie d'une feuille et elle me cr=E9er une
erreur qui me ferme excel
j'ai annuler toutes les action =E9venementiel les alerte mais aucun
r=E9sultat.
J'ai aussi essay=E9 de changer la facon de faire la copie mais idem.


Je vous transmet le d=E9but de mon code en esp=E9rant que vous pourrez
m'aider:


Option Explicit
Dim codepers As Variant '=E0 la lettre repr=E9sentant le nom du
commercial qui a r=E9alis=E9 la quote
Dim codeann As Variant ' c'est le dernier chiffre de l'ann=E9e en cour
Dim codecl=E9 As Variant ' c'est le code cl=E9
Dim nomquote As String 'nom de la cote
Dim LD, LF As Long 'donne les ligne de d=E9but et de fin de la selection

Dim ldeb, lfin As Long 'variable de ligne s=E9lectionn=E9e pour travail
Dim difligne As Long '=3DLD-LF
Dim finmef As Long 'ligne de fin de mise en forme
Dim Ld=E9but As Long

Sub QUOTE_MAKER()

On Error GoTo erreur


Application.ScreenUpdating =3D False
Application.DisplayAlerts =3D False
Application.EnableEvents =3D False
'Donne la ligne de d=E9but et de fin de la s=E9lection
With Selection
LD =3D .Row
LF =3D LD + .Rows.Count - 1
End With

' initialise les variables
ldeb =3D LD
lfin =3D LF

'G=E9n=E9ration du quote log

' Met dans codepers le code ducommercial qui a r=E9alis=E9 la quote

Select Case Range("G" & LD, "G" & LD).Value
'
Case "Emmanuelle LIEBE"
codepers =3D "E"
Case "Sandrine PETIT"
codepers =3D "S"
Case "Isabelle VIALA"
codepers =3D "I"
Case "Pierre LESUR"
codepers =3D "P"
Case "Olivier GASTON"
codepers =3D "O"
Case "Evelyne THOMASSIN"
codepers =3D "T"
Case "Claire AIME"
codepers =3D "C"
Case "Marie-Dominique RAFFY"
codepers =3D "M"
End Select
codeann =3D Right(Year(Date), 1)
codecl=E9 =3D Right(Hex(Hour(Time) * Minute(Time)), 2)

nomquote =3D (codepers & codeann & Month(Date) & Day(Date) & codecl=E9)
'recopie quote log dans quote file



' Cr=E9ation d'une quotation


Sheets("Template Quote VSE").Select
Sheets("Template Quote VSE").Copy After:=3DSheets(3) ' Copie la feuille
template apr=E8s la feuille 2
Sheets("Template Quote VSE (2)").Select
Sheets("Template Quote VSE (2)").Name =3D "Quote" 'renomme la feuille
'Dim VoirFeuille As Integer
Sheets("Quote file OEM DISTRI").Select

For Ld=E9but =3D LD To LF
Range("F" & Ld=E9but) =3D nomquote
Next Ld=E9but
'ThisWorkbook.Activate


'With Sheets("Template Quote VSE")
' VoirFeuille =3D .Visible
' .Visible =3D xlSheetVisible
' .Copy After:=3DSheets(3)
'With ActiveSheet
' .Name =3D "Quote"
' End With=20
' .Visible =3D VoirFeuille=20
'End With=20

Cordialement Yoyo

3 réponses

Avatar
bourby
bonjour,

il me semble que tu n'as pas besoin de sélectionner les feuilles pour
les renommer.
Ensuite, as-tu essayé d'utiliser Activesheet: il m'est arrivé que ça
remmette d'applomb des codes capricieux.

Sheets("Quote file OEM DISTRI").Select {ou : Activate}
For Ldébut = LD To LF
Activesheet.Range("F" & Ldébut) = nomquote
Next Ldébut


Cordialement


Bourby

Yoyo wrote:
Bonjour j'ai un petit problème avec une macro. (Désolé de remettre
un post sur ce sujet, j'ai appliqué toute les proposition qui m'on
été faite, mais je n'ai trouvé la solution à mon problème, alors
peut être en le reformulant ce sera mieux et encore merci pour votre
aide)

Voila elle fonctionne bien une fois sur deux
elle plante au moment de la copie d'une feuille et elle me créer une
erreur qui me ferme excel
j'ai annuler toutes les action évenementiel les alerte mais aucun
résultat.
J'ai aussi essayé de changer la facon de faire la copie mais idem.


Je vous transmet le début de mon code en espérant que vous pourrez
m'aider:


Option Explicit
Dim codepers As Variant 'à la lettre représentant le nom du
commercial qui a réalisé la quote
Dim codeann As Variant ' c'est le dernier chiffre de l'année en cour
Dim codeclé As Variant ' c'est le code clé
Dim nomquote As String 'nom de la cote
Dim LD, LF As Long 'donne les ligne de début et de fin de la selection

Dim ldeb, lfin As Long 'variable de ligne sélectionnée pour travail
Dim difligne As Long '=LD-LF
Dim finmef As Long 'ligne de fin de mise en forme
Dim Ldébut As Long

Sub QUOTE_MAKER()

On Error GoTo erreur


Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
'Donne la ligne de début et de fin de la sélection
With Selection
LD = .Row
LF = LD + .Rows.Count - 1
End With

' initialise les variables
ldeb = LD
lfin = LF

'Génération du quote log

' Met dans codepers le code ducommercial qui a réalisé la quote

Select Case Range("G" & LD, "G" & LD).Value
'
Case "Emmanuelle LIEBE"
codepers = "E"
Case "Sandrine PETIT"
codepers = "S"
Case "Isabelle VIALA"
codepers = "I"
Case "Pierre LESUR"
codepers = "P"
Case "Olivier GASTON"
codepers = "O"
Case "Evelyne THOMASSIN"
codepers = "T"
Case "Claire AIME"
codepers = "C"
Case "Marie-Dominique RAFFY"
codepers = "M"
End Select
codeann = Right(Year(Date), 1)
codeclé = Right(Hex(Hour(Time) * Minute(Time)), 2)

nomquote = (codepers & codeann & Month(Date) & Day(Date) & codeclé)
'recopie quote log dans quote file



' Création d'une quotation


Sheets("Template Quote VSE").Select
Sheets("Template Quote VSE").Copy After:=Sheets(3) ' Copie la feuille
template après la feuille 2
Sheets("Template Quote VSE (2)").Select
Sheets("Template Quote VSE (2)").Name = "Quote" 'renomme la feuille
'Dim VoirFeuille As Integer
Sheets("Quote file OEM DISTRI").Select

For Ldébut = LD To LF
Range("F" & Ldébut) = nomquote
Next Ldébut
'ThisWorkbook.Activate


'With Sheets("Template Quote VSE")
' VoirFeuille = .Visible
' .Visible = xlSheetVisible
' .Copy After:=Sheets(3)
'With ActiveSheet
' .Name = "Quote"
' End With
' .Visible = VoirFeuille
'End With

Cordialement Yoyo



Avatar
Yoyo
Merci beaucoup pour ton aide,

je vais essayer tout cela cordialement Yoyo
Avatar
Yoyo
Bonjour à tous et encore merci

La solution de mon problème venais du fais de la macro enregistre
copier feuille c'est elle qui généré l'erreur.
j'ai contourné le problème en fesant un copier coller de la feuille
et une remise en forme de celle ci .


encore merci a vous tous pour votre aide

Cordialement Yohann