Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

protection d'une formule

  • Initiateur de la discussion Initiateur de la discussion panda200
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

panda200

Guest
Bonjour a tous

Je vais essayer d'etre le plus simple possible, j'ai une facture en Excel dans la cellule P20 j'ai une formule '=N20*R20' , j'ai une macro qui efface les cellules après avoir imprimé la facture '.Range("P20")' car la cellule doit etre efface pour recommencer une nouvelle formule, Mais le résultat que j'obtiens est que la cellule P20 et bien vide du résultat du calcul mais la formule '=N20*R20' est disparu aussi.

Avez-vous une solution pour que la formule '=N20*R20' reste la tout en effacent le résultat ?

Merci de votre attention !

Panda
 
Re : protection d'une formule

Re,
J'ai retouché le code afin d'avoir l'effet escompté : tu me diras si c'est bien cela que tu veux.
Par contre à la sauvegarde, est il normal que seule la première feuille (Invoice) soit archivée ? Si ce n'est pas le cas, on pourra adapter.
Bonne soirée.
 

Pièces jointes

Re : protection d'une formule

Bonjour a tous

il me donne une erreur:

Sub Archiver()

Dim nomfichier
Dim PO As String
Dim nom_client As String, num As String
With ThisWorkbook.ActiveSheet
.Copy
nom_client = .Range("B6")
num = .Range("P3")
PO = .Range("I12")
chemin = "C:\Facture\" 'repertoire d'archive
nomfichier = num & "_" & nom_client & "_" & PO & ".xls"
MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
Sheets("Invoice").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Invoice 2").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Cash sale").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
End With
With ActiveSheet
Sheets("CASH SALE").Select
.Range("C3:E3").ClearContents
.Range("B6:I6").ClearContents
.Range("I12:M12").ClearContents
Range("A20:Q31").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
End With
ThisWorkbook.Save
End Sub



L'erreur est en rouge, (erreur d'execution:1004)pour que le fichier fonctionne correctement on dois creer un dossier dans:

c:/facture

les sauvegardes vont la ..

Merci encore

Panda
 
Re : protection d'une formule

Je suis désolé ,mais je cherchais dans les macros
mais il reste que je suis un débutant, car j'ai eu beaucoiup d'aide pour faire
ce fichier en excel, des gens comme vous et des recherche sur internet.

je suis desolé de mon ignorance, je vais etudier ta macro pour ensuite essayer de l'inserer dans mon fichier excel.

Merci a toi Staple 1600

et Merci a tout les autres

Panda
 
Re : protection d'une formule

je l'ai imprimer sur papier , et je vais l'étudier pour trouver ou l'inserer dans mon listing mais est ce ta macro effacera mes formats de cellule et mes formule ?

Merci
Panda
 
Re : protection d'une formule

si j'ai bien compris...J'espere...je devrai remplacer la section marquer en rouge :




Sub Archiver()
Dim nomfichier
Dim PO As String
Dim nom_client As String, num As String
With ThisWorkbook.ActiveSheet
.Copy
nom_client = .Range("B6")
num = .Range("P3")
PO = .Range("I12")
chemin = "C:\Facture\" 'repertoire d'archive
nomfichier = num & "_" & nom_client & "_" & PO & ".xls"
MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
Sheets("Invoice").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Invoice 2").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Cash sale").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
End With
With ActiveSheet
.Range("C3:E3").ClearContents
.Range("B6:I6").ClearContents
.Range("I12:M12").ClearContents
.Range("A20:O31").ClearContents

End With
ThisWorkbook.Save
End Sub


par ceci:

Sub efface()
Sheets(1).Range("C3:E3,B6:I6,I12:M12,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub

Merci de ton aide, je prefere attendre l'avis de l'expert avant de faire une gaffe

Panda
 
Re : protection d'une formule

Allo c'est encore moi

j'ai chercher a integere ta macro mais il donne encore une erreur
Voici le listing avec tes lignes integrees:

Sub Archiver()
Dim nomfichier
Dim PO As String
Dim nom_client As String, num As String
With ThisWorkbook.ActiveSheet
.Copy
nom_client = .Range("B6")
num = .Range("P3")
PO = .Range("I12")
chemin = "C:\Facture\" 'repertoire d'archive
nomfichier = num & "_" & nom_client & "_" & PO & ".xls"
MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
Sheets("Invoice").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Invoice 2").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Cash sale").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
End With
With ActiveSheet


Sheets(Invoice).Range("B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10,M11😛11,I12:M12,C12:E13,D14:M15,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents



Sheets("Invoice 2").Range("B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10,M11😛11,I12:M12,C12:E13,D14:M15,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents



Sheets("Cash sale").Range("B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10,M11😛11,I12:M12,C12:E13,D14:M15,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub
End With

ThisWorkbook.Save
End Sub

Il me donne l'erreur a la premiere ligne

Merci de ton aide

Panda
 
Re : protection d'une formule

Je me suis tromper dans le listing ...J,ai tellement essayer de différente facon....désolé

Voici le resultat:

Sub Archiver()

Dim nomfichier
Dim PO As String
Dim nom_client As String, num As String
With ThisWorkbook.ActiveSheet
.Copy
nom_client = .Range("B6")
num = .Range("P3")
PO = .Range("I12")
chemin = "C:\Facture\" 'repertoire d'archive
nomfichier = num & "_" & nom_client & "_" & PO & ".xls"
MsgBox "Votre sauvegarde porte la référence : " & nomfichier
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
Sheets("Invoice").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Invoice 2").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
Sheets("Cash sale").Range("P3") = Left(num, 1) & Right(num, Len(num) - 1) + 1
End With
With ActiveSheet
Sheets("Invoice").Range("B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10,M11😛11,I12:M12,C12:E13,D14:M15,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents
Sheets("Invoice 2").Range("B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10,M11😛11,I12:M12,C12:E13,D14:M15,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents
Sheets("Cash sale").Range("B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10, M11😛11,I12:M12,C12:E13,D14:M15,A20:Q31").SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
ThisWorkbook.Save
End Sub


Il me donne une erreur sur la ligne en rouge

Merci de ta patience

Panda
 
Re : protection d'une formule

Merci de ton attention

Mais dans l'onglet CASH SALE les cellules P20 a Q31 les formules disparaissent
quand je sauvegarde .... As tu une bonne idée comment les conserver ?

la cellule P20 contient: =M20*N20
la cellule P21 contient: =M21*N21

etc...

Merci


Panda
 
Re : protection d'une formule

allo

j'ai ce message d'erreur ici au bureau


Merci
Panda
 

Pièces jointes

  • err.jpg
    76.7 KB · Affichages: 46
  • err.jpg
    76.7 KB · Affichages: 52
  • err.jpg
    76.7 KB · Affichages: 48
Re : protection d'une formule

Désolé j'ai regardé tres vite entre deux papiers...

merci pour la mise au point

une petite derniere chose ( J,espere ne plus te deranger apres)

dans l onglet INVOICE les cellules P20 a Q31, les montants reste la apres la sauvegarde...

as-tu une idée lumineuse pour moi.

Merci énormement

Panda
 
Re : protection d'une formule

allo

pour repondre a ta question, si je comprends le VBA...la reponse et ...ca commence a rentrer....ca ressemble beaucoup au BASIC. mais je manque encore d'experience.

Ma question est: est ce que j'ajoute ca dans :

Sub dernier_test()
Dim i as Byte
Dim Zone_D_Effacement As String
Zone_D_Effacement = _
"B6:I9,M6:Q6,D10:F10,B11:G11,O10😛10,M11😛11,I12:M12,C12:E13,D14:M15,A20:O31"
With ActiveWorkbook
n_f = Split("INVOICE+INVOICE 2+CASH SALE", "+")
For i = 0 To 2
With Sheets(n_f(i))
'.[P3] = Left(num, 1) & Right(num, Len(num) - 1) + 1
.Range(Zone_D_Effacement).ClearContents
End With
Next i
.Save
End With
End Sub


dans le listing de la macro original...et si oui a quelle endroit le coller (pour etre sur que je ne plante rien) car je suis au bureau et je fais ca entre deux client..

Merci

Un PANDA débutant 🙂
 
Re : protection d'une formule

allo

quand je le colle a la suite de Archiver_II, je sauvegarde et que je fais la facture,il me donne encore me meme resultat , mes chiffres reste dans le INVOICE.

Peux-tu me copier/coller le listing complet qui fonctionne de ton coté, je vais le coller de mon coté.....si c'est possible..

Merci

Un panda en un peu décourager

merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
244
Réponses
5
Affichages
273
Réponses
2
Affichages
244
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…