integrer au vba une alerte pour ne pas effacer certaines cellules

boudu

XLDnaute Occasionnel
Bonjour au forum
je travaille sur un fichier de planning
les plages horaires sont entrées dans le tableau à l'aide de macros qui entourent la plage et inserent la durée de celle ci
les durées sont totalisées en bas de chaque journée
Je souhaiterais integrer aux macros une alerte au cas où on essaie de mettre une plage sur les formules (pour ne pas les ecraser)
dans mon exemple il ne faut pas effacer les formules en ligne 12
les macros sont dans le fichier pour des plages de 1 2 3 ou 4 (cellules)
Je veux donc que par exemple si on essaie d'entrer une plage de 2 en B11, il y ait un message d'alerte qui s'affiche
par contre et c'est toute la difficulté une plage peut en effacer une autre sans que cela derange
merci d'avance pour vos propositions
 

Pièces jointes

  • empechereffacement.xls
    34 KB · Affichages: 81

pierrejean

XLDnaute Barbatruc
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

bonjour boudu

Vois si cela te va:
Impossibilité de selectionner une des cellules qui ont une formule (methode assez radicale, j'en convient)
 

Pièces jointes

  • empechereffacement.zip
    10 KB · Affichages: 44
  • empechereffacement.zip
    10 KB · Affichages: 46
  • empechereffacement.zip
    10 KB · Affichages: 46

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

Merci pierrejean
je te remercie pour ta rapidité
c'est effectivement tres radical mais parfois il faut savoir l'etre
c'est ce dont j'ai besoin pour mon fichier original
je teste mais a priori ça correspond à ce dont j'ai besoin

bonne continuation
 

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

re pierrejean, le forum
comme d'habitude il ne faut pas crier victoire trop vite, le souci est que mes macros dans le fichier d'origine appliquent un format plus complexe que ce que j'ai mis dans le fichier test (couleur, bordure..) et le fait d'integrer le code que tu as proposé affiche bien le message, renvoie bien en a1 mais cela fait ce qui est demandé dans la macro d'origine au nouvel emplacement.
il faudrait que ça affiche le message mais que le reste de la macro ne s'applique pas
au depart je pensis à une condition du genre if not isempty mais je n'ai pas su la parametrer avec des cellules fixes (donc pas d'offset possible) et le fait qu'on puisse ecrire sur les cellules autres..

c'est plus compliqué en fait donc l'ideal serait avec ton code d'integrer le fait qu'on ne veut pas appliquer le reste du code si le message d'alerte s'affiche

merci encore
 

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

bonjour pierrejean, le forum
un petit up sur mon souci car je ne trouve pas vraiment de solution
j'ai essayé d'amenager le code fourni par pierrejean mais j'ai encore un probleme à la fin de la macro car je voudrais que le curseur se situe dans la feuille de saisie mais j'ai une bordure et le chiffre qui restent apparents!!
je joins le fichier avec le code modifié
merci pour votre aide
 

Pièces jointes

  • empechereffacement.zip
    12.5 KB · Affichages: 35
  • empechereffacement.zip
    12.5 KB · Affichages: 31
  • empechereffacement.zip
    12.5 KB · Affichages: 34

pierrejean

XLDnaute Barbatruc
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

re

Je ne suis vraiment pas sur d'avoir saisi ce que tu souhaites

Vois si cela va , sinon explique bien ce que tu veux
 

Pièces jointes

  • empechereffacement1.zip
    12.8 KB · Affichages: 31

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

re bonjour pierrejean
merci d'avoir regardé à nouveau mon fichier
lorsqu'on essaie d'utiliser le bouton 3 en d10 par exemple, le message apparait et c'est ce que je veux
je souhaite ensuite que l'action complete soit annulée (c'est à dire pas de création de bordure et pas d'inscription du chiffre 3) et que le curseur se positionne en B2
dans l'etat lorsque on se positionne en d10 et qu'on lance la macro, le message s'affiche (super!) mais apres la cellule b3 a des bordures et le chiffre 3 s'inscrit dans cette cellule (ça c'est ce que je ne voudrais pas)

dans le fichier test il faut commencer par effacer le chiffre et la bordure pour verifier

Merci si tu as une solution et bonne continuation
 

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

bonjour marcel
en fait dans mon fichier original la feuille est protégée mais le fait d'utiliser des macros pour formater les plages horaires ne prend pas en compte le fait que certaines cellules sont verrouillées car j'ai installé dans thisworkbook un petit code qui fait que les macros peuvent s'executer sur une feuille protégée
(les vrais fichiers sont toujours un peu plus complexes que les fichiers tests vu la taille)
je sens qu'il ne faut pas grand chose pour que le code de pierrejean soit adapté...
bonne journée
 

TooFatBoy

XLDnaute Barbatruc
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

Bonjour,

OK, je comprends mieux le problème.

Je n'ai toujours pas eu le temps de regarder ton fichier, mais si PJ s'occupe de toi, tu peux concidérer que le problème est résolu.


Bon week-end. :)
 

TooFatBoy

XLDnaute Barbatruc
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

Je viens de regarder ton dernier fichier, je pense qu'il faudrait refondre quelque peut tes deux macro (trois et quatre).

Si j'ai bien compris, on n'aurait le droit d'utiliser le bouton "3" que si on a sélectionné une cellule comprise entre B2 et F9. Pour le bouton "4" ce serait entre B2 et F8.
Est-ce bien cela ?

Et tu risques d'avoiur le même problème avec "deux", je pense.
 
Dernière édition:

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

re Marcel, pierrejean
en fait c'est un peu compliqué parce que c'est un fichier sur lequel je bosse au boulot et là je suis en week end (je n'ai pas pris le fichier avec moi)
de toutes façons ça n'a pas vraiment d'imortance, le defaut est simplement que apres le message excel continue le deroulement et ecrit la bordure et le chiffre au lieu de stopper le code et simplement de repositionner le curseur en B2

c'est vrai que PierreJean m'a deja depanné à plusieurs reprises...

(en fait je ne comprends pas pourquoi avec le flag ça n'arrête pas le deroulement de la macro , je me demande si il ne serait pas possible à ce moment-là de faire en sorte qu'apres l'affichage du message le curseur se repositionne à son point de depart??
c'est toujours sur les points de detail qu'on doit passer un moment mais bon..
bonne continuation
 

TooFatBoy

XLDnaute Barbatruc
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

Re, ;)

En attendant que PJ revienne, je te propose ça :
Code:
Sub trois()
'
' trois Macro
' Macro enregistrée le 27/06/2008 par Administrateur
'

'
    ActiveCell.Range("A1:A3").Select
    
    Set isect = Application.Intersect(ActiveCell.Range("A1:A3"), Range("B12:F12"))
    If Not isect Is Nothing Then
        MsgBox ("Attention vous allez modifier une Formule")
        ActiveCell.Range("A1").Select
    Else
        Set isect = Application.Intersect(ActiveCell.Range("A1:A3"), Range("B2:F9"))
        If isect Is Nothing Then
            ActiveCell.Range("A1").Select
        Else
            selection.Borders(xlDiagonalDown).LineStyle = xlNone
            selection.Borders(xlDiagonalUp).LineStyle = xlNone
            With selection.Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .Weight = xlMedium
                .ColorIndex = xlAutomatic
            End With
            With selection.Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlMedium
                .ColorIndex = xlAutomatic
            End With
            With selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlMedium
                .ColorIndex = xlAutomatic
            End With
            With selection.Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .Weight = xlMedium
                .ColorIndex = xlAutomatic
            End With
            selection.Borders(xlInsideHorizontal).LineStyle = xlNone
            ActiveCell.FormulaR1C1 = "3"
        End If
    End If
End Sub

Si la feuille est protégée, alors la macro de PJ n'est plus utilie.


Le code de PJ est activé lorsqu'on sélectionne une zone (une ou plusieurs cellules de la feuille), mais n'interfère nullement sur le déroulement de tes macro "un", "deux", "trois" et "quatre".
C'est pourquoi le code de ta macro se déroule tout de même.
Pour qu'il ne se déroule plus, il faut greffer le code de PJ dans tes macros.
C'est ce que j'ai tenté de faire. ;)
 
Dernière édition:

boudu

XLDnaute Occasionnel
Re : integrer au vba une alerte pour ne pas effacer certaines cellules

Re Marcel
merci pour ce code qui fonctionne au poil, je n'ai plus qu'à l'adapter aux autres plages
je pensais à quelque chose dans ce genre mais je n'arrivais pas à le coder
l'option de Pierrejean etait plus radicale mais demandait à etre adaptée
bonne continuation à tous les deux et au forum
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg