Empécher éffacement ou deplacement de cellules

chatroc

XLDnaute Junior
J'ai réalisé pour une toute petite bibliothèque cantonnalle, un programme sous excell pour gérer les préts de livre , les lecteurs , les livres , les archives etc..
Lorsque un lecteur rend un livre, il suffit de sélectionner la cellule correspondant au titre du livre et au lecteur , dans la colonne "Date de retour", de cliquer sur le bouton "DATE RETOUR" qui commande une macro.
Cette macro met la date du jour, sélectionne toute la ligne du tableau et active la copie (ce qui met la ligne en surbrillance), il suffit , alors de cliquer su "valider retour" pour que la ligne soit coupée et transféré aux archives (une feuille "archives")
Mon problème, c'est que les bénévoles qui gèrent la bibliothèque ne maitrisent pas tous l'ordinateur et excel; il s'ensuit que certains se trompent et sélectionnent la cellule du titre ("DATE DE RETOUR") ce qui a pour effet de transférer la ligne dans les archives et donc d'effacer la ligne de titres dans la "GESTION des PRETS"
J'ai essayé avec ; DONNEES, Validation, Personnalisés mais ce n'est pas éfficace contre la macro

MERCI à tous pour cet excélent forum
et MERCI spécialement à celui qui pourra me dépanner
 

ziopizza

XLDnaute Occasionnel
Re : Empécher éffacement ou deplacement de cellules

Bonsoir chatroc,

A part de mettre dans la Macro du bouton un message d'alerte,ou un mot de passe,on ne peut pas empécher la macro de s'exécuter.
Sinon,supprimer le bouton et actionner la Macro par une combinaison de touche.
Plusieurs options peuvent être adaptées.
Salut Yves
 

Pierrot93

XLDnaute Barbatruc
Re : Empécher éffacement ou deplacement de cellules

Bonsoir Chatroc, Yves

et si tu mettais une condition à l'execution de ta macro, soit sur la ligne de la cellule active, si la ligne 1 comporte les titres, soit sur son adresse !!!

Code:
If ActiveCell.Row <> 1 Then
'ton code

End If

bonne soirée
@+
 

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

Merci à ZIOPIZZA et à PIERROT93, mais je veux bien encore une aide car je suis pas trés fort en macros
voici la macro qui valide la date de retour

Sub Date_Retour()
'
' Date_Retour Macro
' Macro enregistrée le 25/06/2006 par noel
'
ActiveWindow.SmallScroll ToRight:=-3
ActiveCell.Offset(0, -10).Range("A1").Select
Selection.Copy
ActiveCell.Offset(0, 10).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(0, -5).Range("A1:F1").Select
ActiveCell.Activate
Selection.Copy
End Sub

et la macro qui déplace la ligne

Sub Val_Retour()
'
' Val_Retour Macro
' Macro enregistrée le 25/06/2006 par noel
'

'
Sheets("Archives").Select
Range("B7:G7").Select
Selection.Insert Shift:=xlDown
Sheets("Gestion des prêts").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=-4
Range("F8").Select
End Sub

Si je comprends bien il faudrait conditionner les 2 macro, mais je ne suis pas trés spécialiste( je me contente de créer des macros avec l'assistant automatique )

Les cellules à ne pas effacer sont §F§8:§K§8

Encore MERCI à tous
 

Pierrot93

XLDnaute Barbatruc
Re : Empécher éffacement ou deplacement de cellules

Bonsoir Chatroc

Si tu pouvais mettre ton fichier avec les macros en pièce jointe, ce serait plus facile pour t'aider. Je t'avoue que je ne comprends pas tout, notamment la ligne ci dessous :

Code:
ActiveCell.Offset(0, 10).Range("A1").Select

Bonne soirée
@=
 

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

Pierrot93 à dit:
Bonsoir Chatroc

Si tu pouvais mettre ton fichier avec les macros en pièce jointe, ce serait plus facile pour t'aider. Je t'avoue que je ne comprends pas tout, notamment la ligne ci dessous :

Code:
ActiveCell.Offset(0, 10).Range("A1").Select

Bonne soirée
@=

Merci , je m'explique
cette partie de code est destiné à aller copier la date du jour (AUJOURDHUI() ) qui est sans la colonne A1:A1000 afin de ne copier que la valeur car, sinon , la date retour changait chaque jour et je n'ai pas su faire autrement .

J'aimerais bien envoyer un fichier joint mais il faudra que je le réduise car sinon il est trop volumineux

Merci Pierrot93 de ta compréhension
 

Pierrot93

XLDnaute Barbatruc
Re : Empécher éffacement ou deplacement de cellules

Re Chatroc

Si tu veux la date du jour dans une cellule, la cellule A1 de la feuille active par exemple, c'est le code ci dessous :

Code:
Range("A1").Value = Date

Oui essaie de mettre une partie significative de ton fichier, ca sera plus facile.

Bonne soirée
@+
 

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

Je vais essayer d'envoyer le fichier réduit, c'est un peu une usine à gaz, mais c'est la premiere fois que je m'essaye au macros ,et ça été laborieux
Je supplie les puristes et les forts en math ( je veux dire en excel ) de me pardonner

Désolé il faut que je réduis encore , même zipé il fait 169Ko

A +
 

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

A force d'en supprimer j'ai enfin réussi à le réduire suffisamment pour pouvoir le joindre

donc le voici

Merci à tous et à +
 

Pièces jointes

  • GESTION_des_lecteurs-exemple.zip
    32.7 KB · Affichages: 58

ziopizza

XLDnaute Occasionnel
Re : Empécher éffacement ou deplacement de cellules

Bonjour chatroc,Pierrot93,
si j'ai compris?,un essai fichier joint.

Déplacement si date retour
@+Yves
 

Pièces jointes

  • empecher-effacement_lecteurs-exemple.zip
    33.6 KB · Affichages: 55
Dernière édition:

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

Merci pour ton aide
J'ai essayé mais ça ne résoud pas vraiment mon problème, car certains des bénévoles ne sont pas trés doués en inforamatique et ta solution n'empèche pas qu'ils suppriment la ligne de titres s'ils positionnent la souris sur la cellule du titre (ils ne lisent pas forcément les messages d'alerte.
Mais peut être aurais je résolu le problème en supperposant le bouton de commande de la macro sur la cellule de la ligne de titre de façon à la cacher .
On va essayer !!!

En tout cas, encore Merci de ton aide
A+
 

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

Bojour à tous
Quand on n'est pas doué!!!!
J'ai essayé d'améliorer mon système en m'aidant de ce que Ziopiza m'avait envoyé,mais comme je n'ai jamais fait du Basic et que je ne connais pas un mot d'anglais, JE PLANTE
Voici ce que j'essaye de faire, je veux qu'en lançant la macro "date du jour" (Dans la Feuille "Gestion des Prets"); la date s'inscrive en valeur dans la cellule sélectionnée,
Que la ligne contenant la cellule soit activée et copiée (donc mise en surbrillance)
Q'un message apparaisse avec un bouton "OUI" ou "Annuler"
Si on clique sur annuler la ligne est désectioné (Echap) et la cellule contenant la date est effacée
Si on clique sur "Oui" la ligne en surbrillance est supprimée et colée dans la feuille "Archives"

Voici ma macro, ça plante à "Exit Sub"
Sub Date_jour()
'
' Date_jour Macro
' Macro enregistrée le 13/11/2006 par noel
'
Dim lig As Integer
Dim Dt As Range
ActiveCell.Value = "=TODAY()"
Range(Cells(lig, 6), Cells(lig, 11)).Copy Destination:=Dt 'selectionne la ligne et active la copie'
MsgBox ("Vérifiez si vous avez bien sélectionné le livre & l'emprunteur concerné")
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & "Si oui : validez"
Msg = Msg & vbNewLine
Msg = Msg & "Sinon Annulez"
Config = VbYesCancel & vbCritical
If Reponse = VbCancel Then Copy DestinationModeFalse,Range(Cells(lig,11)).Activate.ClearContents. Exit Sub
'si clique sur annuler : annule la copie et efface la cellule contenant la date'
Set Dt = Sheets("Archives").Range("b65536").End(xlUp).Offset(1, 0) 'copie la ligne sélectionné dans les archives'
Sheets(1).Rows(lig).Delete ' pour supprimer la ligne'

End Sub

Merci à tous ceux qui m'aident à me familiariser avec les macros
J'ai bien acheté "Programation VBA pour les Nuls" mais je n'en suis pas emballé
 

ziopizza

XLDnaute Occasionnel
Re : Empécher éffacement ou deplacement de cellules

Bonjour Chatroc,le forum,
ci-joint une autre approche avec userform.
Salut Yves
 

Pièces jointes

  • GESTION_des_lecteurs.zip
    34.7 KB · Affichages: 73
  • GESTION_des_lecteurs.zip
    34.7 KB · Affichages: 70
  • GESTION_des_lecteurs.zip
    34.7 KB · Affichages: 67

chatroc

XLDnaute Junior
Re : Empécher éffacement ou deplacement de cellules

ziopizza à dit:
Bonjour Chatroc,le forum,
ci-joint une autre approche avec userform.
Salut Yves

Merci Yves, ce que tu as fait me plait bien et je vais le conserver
Je voudrais simplement modifier la taille du texte des boutons, j'ai pas trouvé comment faire.

Ceci étant j'aurais bien aimé connaitre la correction de ma macro pour M'INSTRUIRE
Mais j'exagère !!!

Merci et à +
Amicalement, Noel
 

ziopizza

XLDnaute Occasionnel
Re : Empécher éffacement ou deplacement de cellules

Bonjour Noel,le Forum,

Dans le fichier joint une tentative d'explications de ton code.
Pour changer le texte d'un CommandButton,le selectionner allez dans ces propriétés, Voir fichier joint.

@+ Yves
 

Pièces jointes

  • Explications.zip
    34.6 KB · Affichages: 50
  • Explications.zip
    34.6 KB · Affichages: 49
  • Explications.zip
    34.6 KB · Affichages: 46

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 779
Membres
103 663
dernier inscrit
b4ri5.c