Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro d'enregistrement de feuille selmectionnée dans un rep definis

6 réponses
Avatar
pireyzend
Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement :
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:\nom\sauvegardes\vmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus loin
que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:=False, CreateBackup:=False

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:=False, Transpose:=False

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:=False, Transpose:=False

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub

6 réponses

Avatar
pireyzend
"pireyzend" a écrit dans le message de news:

Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement :
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:nomsauvegardesvmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus
loin que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

==> ICI L'ERREUR : Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub




Avatar
michdenis
Bonjour pireyzend,

| message d'erreur 9 : "l'indice n'appartiens pas a la selection"

Ce message est généré lorsque la référence à un objet est incorrect
Exemple : Worksheets("Feuil25").....
Si le classeur n'a aucune feuille ayant le nom d'onglet "Feuil25"), une
erreur de type 9 est générée.

En conséquence, sur la ligne mise en surbrillance jaune au moment de
l'exécution... il devrait être assez facile de vérifier quelle référence à
un objet est fautif.

P.-S. C'est bien de publier son code...c'est encore mieux si dans ton
message tu peux identifier CLAIREMENT où tu éprouves une difficulté.


Salutations!





"pireyzend" a écrit dans le message de news:
Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement :
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:nomsauvegardesvmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus loin
que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub
Avatar
pireyzend
Voila, j'ai mis ou ce produit le "plantage"

amicalement

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

===> c'est ici le plantage : Windows("vmDocFch").Activate





"michdenis" a écrit dans le message de news:
%
Bonjour pireyzend,

| message d'erreur 9 : "l'indice n'appartiens pas a la selection"

Ce message est généré lorsque la référence à un objet est incorrect
Exemple : Worksheets("Feuil25").....
Si le classeur n'a aucune feuille ayant le nom d'onglet "Feuil25"), une
erreur de type 9 est générée.

En conséquence, sur la ligne mise en surbrillance jaune au moment de
l'exécution... il devrait être assez facile de vérifier quelle référence à
un objet est fautif.

P.-S. C'est bien de publier son code...c'est encore mieux si dans ton
message tu peux identifier CLAIREMENT où tu éprouves une difficulté.


Salutations!





"pireyzend" a écrit dans le message de news:

Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement :
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:nomsauvegardesvmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus
loin
que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub





Avatar
michdenis
Bonjour pireyzend


| Windows("vmDocFch").Activate

Si ton fichier a déjà été enregistré une fois, tu dois inscrire aussi l'extension du fichier

Windows("vmDocFch.xls").Activate

Il est préférable d'utiliser la collection Workbooks pour une question de lisibilité
Workbooks("vmDocFch.xls").Activate



Salutations!






"pireyzend" a écrit dans le message de news:
Voila, j'ai mis ou ce produit le "plantage"

amicalement

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

===> c'est ici le plantage : Windows("vmDocFch").Activate





"michdenis" a écrit dans le message de news:
%
Bonjour pireyzend,

| message d'erreur 9 : "l'indice n'appartiens pas a la selection"

Ce message est généré lorsque la référence à un objet est incorrect
Exemple : Worksheets("Feuil25").....
Si le classeur n'a aucune feuille ayant le nom d'onglet "Feuil25"), une
erreur de type 9 est générée.

En conséquence, sur la ligne mise en surbrillance jaune au moment de
l'exécution... il devrait être assez facile de vérifier quelle référence à
un objet est fautif.

P.-S. C'est bien de publier son code...c'est encore mieux si dans ton
message tu peux identifier CLAIREMENT où tu éprouves une difficulté.


Salutations!





"pireyzend" a écrit dans le message de news:

Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement :
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:nomsauvegardesvmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus
loin
que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub





Avatar
pireyzend
Bonjour, et merci pour ton aide.

Malheureusement ce que tu me dit ne fonctionne pas. Même message d'erreur.

Ce qui m'etonne le plus est que cette même macro, dans un autre classeur,
fonctionne parfaitement...

Salutations


"michdenis" a écrit dans le message de news:

Bonjour pireyzend


| Windows("vmDocFch").Activate

Si ton fichier a déjà été enregistré une fois, tu dois inscrire aussi
l'extension du fichier

Windows("vmDocFch.xls").Activate

Il est préférable d'utiliser la collection Workbooks pour une question de
lisibilité
Workbooks("vmDocFch.xls").Activate



Salutations!






"pireyzend" a écrit dans le message de news:

Voila, j'ai mis ou ce produit le "plantage"

amicalement

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

===> c'est ici le plantage : Windows("vmDocFch").Activate





"michdenis" a écrit dans le message de news:
%
Bonjour pireyzend,

| message d'erreur 9 : "l'indice n'appartiens pas a la selection"

Ce message est généré lorsque la référence à un objet est incorrect
Exemple : Worksheets("Feuil25").....
Si le classeur n'a aucune feuille ayant le nom d'onglet "Feuil25"), une
erreur de type 9 est générée.

En conséquence, sur la ligne mise en surbrillance jaune au moment de
l'exécution... il devrait être assez facile de vérifier quelle référence
à
un objet est fautif.

P.-S. C'est bien de publier son code...c'est encore mieux si dans ton
message tu peux identifier CLAIREMENT où tu éprouves une difficulté.


Salutations!





"pireyzend" a écrit dans le message de news:

Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement
:
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:nomsauvegardesvmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus
loin
que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub










Avatar
michdenis
C'est quoi ton message d'erreur ?


Salutations!


"pireyzend" a écrit dans le message de news:
Bonjour, et merci pour ton aide.

Malheureusement ce que tu me dit ne fonctionne pas. Même message d'erreur.

Ce qui m'etonne le plus est que cette même macro, dans un autre classeur,
fonctionne parfaitement...

Salutations


"michdenis" a écrit dans le message de news:

Bonjour pireyzend


| Windows("vmDocFch").Activate

Si ton fichier a déjà été enregistré une fois, tu dois inscrire aussi
l'extension du fichier

Windows("vmDocFch.xls").Activate

Il est préférable d'utiliser la collection Workbooks pour une question de
lisibilité
Workbooks("vmDocFch.xls").Activate



Salutations!






"pireyzend" a écrit dans le message de news:

Voila, j'ai mis ou ce produit le "plantage"

amicalement

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

===> c'est ici le plantage : Windows("vmDocFch").Activate





"michdenis" a écrit dans le message de news:
%
Bonjour pireyzend,

| message d'erreur 9 : "l'indice n'appartiens pas a la selection"

Ce message est généré lorsque la référence à un objet est incorrect
Exemple : Worksheets("Feuil25").....
Si le classeur n'a aucune feuille ayant le nom d'onglet "Feuil25"), une
erreur de type 9 est générée.

En conséquence, sur la ligne mise en surbrillance jaune au moment de
l'exécution... il devrait être assez facile de vérifier quelle référence
à
un objet est fautif.

P.-S. C'est bien de publier son code...c'est encore mieux si dans ton
message tu peux identifier CLAIREMENT où tu éprouves une difficulté.


Salutations!





"pireyzend" a écrit dans le message de news:

Bonjour à tous,

J'ai un problème que je comprends pas sur une macro.
J'explique le problème et met le code vba ci-apres.

Ce qui est en jaune indique l'endroit ou la macro "plante" et me met le
message d'erreur 9 : "l'indice n'appartiens pas a la selection"
vmDocFch, pointe sur une cellule qui donne un adressage d'enregistrement
:
exemple "nom client Nxxx"
vmDocChm indique l'endroit d'enregistrement : exemple
"c:nomsauvegardesvmDocFch.xls"

ça enregistre bien dans le rep de destination un classeur nommé comme
"vmDocFch.xls", mais c'est une feuille blanche et la macro va pas plus
loin
que ce que j'ai indiqué en jaune sur la copie de la macro ci-dessous.

Ou est l'erreur ?

merci

'***Validation du Document

Sub DocumentValider()

Dim vNbreImp As Variant

Dim vmDocFch As Variant

Dim vmDocChm As Variant

vmDocFch = Range("vmDocFch")

vmDocChm = Range("vmDocChm")

'Conditions Validation

'Sur Date

If Range("vnDocumentDateDoc") = "" Then

MsgBox "Date du Document non renseignée."

Range("vnDocumentDateDoc").Select

Exit Sub

End If

'Sur N°

If Range("vnDocumentNumDoc") = "" Then

MsgBox "Numéro du Document non renseigné."

Range("vnDocumentNumDoc").Select

Exit Sub

End If

'Imprimer Document

'Nbre de copie à imprimer

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

If vNbreImp <= 0 Then GoTo 5

If IsNumeric(vNbreImp) Then

GoTo 10

Else: Do Until IsNumeric(vNbreImp)

5

MsgBox "La valeur doit être un nombre entier et > 0"

vNbreImp = InputBox("Nombre d'exemplaire à imprimer :", "Impression
Document", 1)

Loop

GoTo 10

End If

10

Sheets("Imp").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=vNbreImp

'Copie Imp/Fichier

'Condition garder une copie

If Range("vnDossierOptCopieDoc") = "Non" Then GoTo 20

'Condition creer une copie

If Range("vnDossierOptCopieDoc") = "Oui" Then

Workbooks.Add

ActiveWorkbook.SaveAs Filename:=vmDocChm, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:úlse, CreateBackup:úlse

Windows("F-excel.xls").Activate

Sheets("Imp").Select

Cells.Select

Selection.Copy

Windows("vmDocFch").Activate

Cells.Select

'copier les valeurs uniquement

Selection.PasteSpecial Paste:=xlValues, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

'copier les formats uniquement

Selection.PasteSpecial Paste:=xlFormats, Operation:= _

xlNone, SkipBlanks:úlse, Transpose:úlse

Range("a1").Select

Application.CutCopyMode = False

'Enregistrer et Fermer la copie

ActiveWorkbook.Save

ActiveWorkbook.Close

GoTo 20

End If

20

Windows("F-Excel.xls").Activate



Range("chpDocumentDesignation").Select

Selection.ClearContents

'Quantité

Range("chpDocumentQuantite").Select

Selection.ClearContents

'Montant HT

'Range("chpDocumentMontantHT").Select

'Selection.ClearContents

'Code TVA

Range("chpDocumentCodeTva").Select

Selection.ClearContents

'Prix Unitaires

Range("chpDocumentPU").Select

Selection.ClearContents

'UV

Range("chpDocumentUV").Select

Selection.ClearContents

'Retour

Range("a1").Select

End Sub