Problème de language VBA

Bonjour à tout le monde,

J'essaie mais ca avance pas vite mon affaire...et croyez moi je travail fort.

Je suis nul en VBA mais je parviens a me demeller juste un peu a force d'essai et erreur. Mais la, je crois que je suis résigner a demande de l'aide une fois de plus.

Je joins mon fichier pour mieux me faire comprendre.

https://www.excel-pratique.com/~files/doc/NGFfhComptoir_ver_2.1forum.xls

1- Ce fichier est mon fichier maitre, dans mon onglet "soumission" j'ai le resultat de mes calcul des autre onglets. Avec ma macro, je veux copier "soumission" dans un ficher avec son propre nom. Pour ca c'est ok. Par contre je viens de me rendre compte que les cellule de ma nouvelle sauvegarde son vide et que le contenu n'est pas le resultat de mon onglet "soumission" de mon fichier maitre mais plutot des formules qui fait référence au fichier maitre. Me suivez-vous? comment copier l'onglet pour que ce soit le resultat qui soit copier et non les formule?

2- Si je demarre la macro, je ne parviens pas a ne pas avoir d'erreur lorsque je ne suis pas sur la feuille "soumission". Autrement dit, j'ai une erreur aussitot que je decolle ma macro et que je ne suis pas sur l'onglet "soumission". Comment faire pour remedier a ce problème.

J'aimerais beaucoup qu'un ame charitable me vienne en aide pour me delivrer de ma soufrance de la fin de semaine...

Merci la gang!

Bonjour,

Remplace le début de ta macro par ceci :

Sub essai()
Dim Nomfichier As String, chemin as string
ActiveSheet.Unprotect
With Sheets("Soumission client")
    .Activate
    .Copy
    Nomfichier = "Soumission_" & Range("j7")
End With
With ActiveSheet.UsedRange
    .Copy
    .PasteSpecial Paste:=xlValues
End With
Chemin =.....
.....

Amicalement

Dan

Super merci beaucoup pour le point 1

mais pour le point 2...ca ne marche toujours pas....je ne vois aucun changement par rapport a mon fichier.

re,

Le point 2 est résolu dans ma proposition si tu as bien placé les instructions au bon endroit. Où alors place ta macro ici que je la vois.

A te relire

Dan

Voici mon code, tel que demandé

Tu es très sympatique de prendre du temps pour me répondre...j'apprecie!

Sub essai()

Dim Nomfichier As String, chemin As String

ActiveSheet.Unprotect

With Sheets("Soumission client")

.Activate

.Copy

Nomfichier = "Soumission_" & Range("j7")

End With

With ActiveSheet.UsedRange

.Copy

.PasteSpecial Paste:=xlValues

End With

chemin = "C:\Documents and Settings\Utilisateur\Mes documents\Facture\" 'répertoire

'on définit le nom du futur fichier et son extension en tant que fichier xls

ActiveWorkbook.SaveAs Filename:=chemin & Nomfichier & ".xls"

Sheets("Soumission client").Name = Nomfichier

'là un petit message pour faire joli et indiquer que la sauvegarde a bien été exécutée

msg = "Votre Facture a été sauvegardée sous le nom et n° que vous lui avez donné."

Title = "Sauvegarde de la facture actuelle"

Style = vbOKOnly + vbInformation

Reponse = MsgBox(msg, Style, Title)

ActiveSheet.Protect

ActiveWorkbook.Close (False)

'sur le fichier d'origine on incrémente la cellule H3 de 1 et on efface la cellule G3

Sheets("Soumission client").Range("j7") = Range("j7") + 1

Sheets("devis").Range("b2:b5") = ""

Sheets("devis").Range("b7:b8") = ""

Sheets("devis").Range("f14:p15") = ""

' Range("G3") = ""

'on reprotège la feuille

ActiveSheet.Protect

End Sub

Re,

essaye ce code à la place du tiens :

Sub essai()
Dim Nomfichier As String, chemin As String
With Sheets("Soumission client")
.Activate
.Unprotect
.Copy
Nomfichier = "Soumission_" & Range("j7")
End With
With ActiveSheet.UsedRange
.Copy
.PasteSpecial Paste:=xlValues
End With
chemin = "C:\Documents and Settings\Utilisateur\Mes documents\Facture\" 'répertoire
'on définit le nom du futur fichier et son extension en tant que fichier xls
ActiveWorkbook.SaveAs Filename:=chemin & Nomfichier & ".xls"
Sheets("Soumission client").Name = Nomfichier
'là un petit message pour faire joli et indiquer que la sauvegarde a bien été exécutée
msg = "Votre Facture a été sauvegardée sous le nom et n° que vous lui avez donné."
Title = "Sauvegarde de la facture actuelle"
Style = vbOKOnly + vbInformation
Reponse = MsgBox(msg, Style, Title)
ActiveSheet.Protect
ActiveWorkbook.Close
'sur le fichier d'origine on incrémente la cellule H3 de 1 et on efface la cellule G3
Sheets("Soumission client").Range("j7") = Range("j7") + 1
With Sheets("devis")
    .Range("b2:b5").ClearContents
    .Range("b7:b8").ClearContents
    .Range("f14:p15").ClearContents
End With
' Range("G3") = ""
'on reprotège la feuille
ActiveSheet.Protect
End Sub

Amicalement

Dan

Merci mais on rempir le cas...

Je joins le fichier corrigé avec tes derniere modif. 2 "erreur" m'empeche de voir si ca marche au complet

1- Maintenant il me demande une confirmation pour enregistrer ma soumission. Comme si elle etait deja enregistré.

2- Ce message d'erreur apparait "Impossible de modifier une cellule fusionnée" qui font reference a l'effacement de certaine cellule.

Merci encore de ton aide.

https://www.excel-pratique.com/~files/doc/Comptoir_ver_3.0essai.zip

re,

Après ActiveWorkbook.Close rajoute --> (False). N'oublie pas les parenthèses.

Plus bas, remplace .Range("b2:b5").ClearContents par .Range("b2:D5").ClearContents. N'oublie pas le . avant RANGE.

A te relire

Dan

Rechercher des sujets similaires à "probleme language vba"