> Tous les forums > Forum Bureautique
 Traitement conditionné par une réponse sur ExcelSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
1000cbr
  Posté le 01/02/2009 @ 09:40 
Aller en bas de la page 
Astucien

Bonjour à tous et à toutes

J'aimerai savoir s'il est possible sous Excel (sans passer par VB) de conditionner un traitement par le réponse à une question.

Je voudrais demander confirmation avant de supprimer quelques données.

Merci.

Publicité
manet61
 Posté le 01/02/2009 à 10:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Réponse: Oui pourquoi pas en passant par des formules.

Il faudrait savoir quelle est la question posée et quelle la réponse obtenue.

Un petit exemple simplirait bien la vie!

A+

1000cbr
 Posté le 01/02/2009 à 11:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

manet61 a écrit :

Bonjour,

Réponse: Oui pourquoi pas en passant par des formules.

Il faudrait savoir quelle est la question posée et quelle la réponse obtenue.

Un petit exemple simplirait bien la vie!

A+

Salutations dominicales.

C'est très simple.

Je souhaite, pour RAZ des données, appeler une macro qui fasse cette RAZ. Mais je voudrai conditionner l'exécution de ladite macro pour une réponse positive à une question genre : voulez-vous vraiment faire cette RAZ.

Si c'est OUI je fais la RAZ sinon je retourne à la cellule avant l'appel (ou ailleurs).

Suis-je clair ?

Cordialement

manet61
 Posté le 01/02/2009 à 14:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re-Bonjour,

Pas de problème, cela se règle avec une boite de dialogue où il faut cliquer sur Oui ou sur non selon ce qu'on choisi.

Passez moi une copie de votre fichier, je vous ferais la solution.

Pour passer le fichier utiliser Cjoint.com (si le fichier fait mois de 500 Ko) ou Cjoint.fr (si le fichier fait plus de 500 Ko).

Vous pouvez me passer le fichier en message privé.

A+

Marmotte18
 Posté le 01/02/2009 à 16:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour manet61,

Sans vouloir t'offusquer, il n'est pas normal dans un forum de demander en messagerie privée la transmission d'un fichier de démonstration.Tout le monde peut-être intéressé par les solutions proposées, ce qui facilite l'enrichissement de tous !

1000cbr
 Posté le 01/02/2009 à 17:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

manet61 a écrit :

Re-Bonjour,

Pas de problème, cela se règle avec une boite de dialogue où il faut cliquer sur Oui ou sur non selon ce qu'on choisi.

Passez moi une copie de votre fichier, je vous ferais la solution.

Pour passer le fichier utiliser Cjoint.com (si le fichier fait mois de 500 Ko) ou Cjoint.fr (si le fichier fait plus de 500 Ko).

Vous pouvez me passer le fichier en message privé.

A+

Avec plaisir.

Je vais le passer sur e forum comme le préconise Marmotte.

Mais ej ne sais pas e que veux dire Ci.joint.com ou ci.joint.fr.

Marmotte18
 Posté le 01/02/2009 à 17:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir 1000cbr,

Tu devrais nous faire parvenir un petit fichier de démonstration avec des données non réelles pour comprendre le principe.

N'oublie pas de nous montrer clairement, les résultats attendus.

Pour cela, utilise le lien : http://www.cijoint.fr/

  1. Clique sur le bouton "parcourir" pour indiquer où se trouve ton fichier sur ton disque dur
  2. Clique sur le bouton "cliquez ici pour déposer le fichier"
  3. Copie l'URL qui se trouve sous le texte "C'est ce même lien que vous devez transmettre à vos correspondants"
  4. Colle cette URL à l'intérieur de ton message
De cette manière, on aura un fichier à disposition et on pourra te répondre plus efficacement.



Modifié par Marmotte18 le 01/02/2009 17:37
1000cbr
 Posté le 01/02/2009 à 18:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

C'est mon fichier réel mais il n'y a pas de problème.

http://www.cijoint.fr/cjlink.php?file=cj200902/cij32RqdMC.xls

Il me semblait que ma question était limpide.

Je réexplique.

Dans ma feuille principale , j'ai un bouton qui va appeler une macro qui fait la RAZ de mes données non protégées.

Je souhaite conditionner cette RAZ pas une question de confirmation afin de ne pas faire cette RAZ a tort.

JE suis désolé je ne sais pas expliquer cela autrement.


Marmotte18
 Posté le 01/02/2009 à 18:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir 1000cbr,

J'ai une réponse faite par un excellent technicien d'Excel qui s'appelle BOISGONTIER. Je l'ai félicité pour sa trouvaille et j'espère qu'elle te conviendra.

Le fichier de démonstration que je vais te fournir posera la question uniquement sur la plage de cellules A1:C10, à toi de l'adapter :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijKaEOwKs.xls

Ce code est à mettre sur l'objet "Feuil1" :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A1:C10], Target) Is Nothing Then
If Application.CountA(Target) = 0 Then
If MsgBox("Etes vous sûr? ", vbYesNo) <> vbYes Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End If
End Sub

Ne te formalise pas sur ma précédente réponse, c'est un texte tout fait que je reproduis à chaque fois qu'il faut parler de cijoint.fr



Modifié par Marmotte18 le 01/02/2009 18:35
1000cbr
 Posté le 01/02/2009 à 19:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Marmotte18 a écrit :

Bonsoir 1000cbr,

J'ai une réponse faite par un excellent technicien d'Excel qui s'appelle BOISGONTIER. Je l'ai félicité pour sa trouvaille et j'espère qu'elle te conviendra.

Le fichier de démonstration que je vais te fournir posera la question uniquement sur la plage de cellules A1:C10, à toi de l'adapter :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijKaEOwKs.xls

Ce code est à mettre sur l'objet "Feuil1" :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A1:C10], Target) Is Nothing Then
If Application.CountA(Target) = 0 Then
If MsgBox("Etes vous sûr? ", vbYesNo) <> vbYes Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End If
End Sub

Ne te formalise pas sur ma précédente réponse, c'est un texte tout fait que je reproduis à chaque fois qu'il faut parler de cijoint.fr

Grand merci.

Je vais me mettre dessus
Je ne doute pas que tes explications soit compréhensibles.

Merci à tous ceux qui m'ont répondu.

Si je coince je reviens...

1000cbr
 Posté le 01/02/2009 à 19:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai été optimiste ou bien j'ai présumé de mes facultés intectuelles mais je n'ai rien compris.

Dans le fichier que tu m'as transmis je ne vois pas la demande de confirmation ni ne sais comment intégrer ce que tu m'as passé dans ton message, s'il faut le faire.

Je ne comprends pas ce qu'il faut faire de ça :

Ce code est à mettre sur l'objet "Feuil1" :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A1:C10], Target) Is Nothing Then
If Application.CountA(Target) = 0 Then
If MsgBox("Etes vous sûr? ", vbYesNo) <> vbYes Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End If
End Sub

Marmotte18
 Posté le 01/02/2009 à 20:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

1000cbr,

As-tu essayé mon fichier ? As-tu essayé de supprimer une ou plusieurs données de la plage verte et as-tu répondu à la question ? (une fois oui et une fois non)

Par ailleurs, ce n'est pas une macro classique qui se met dans un module standard mais du code VBA qui s'accroche à l'objet "Feuil1" (zone cerclée de rouge dans l'image ci-dessous). Vérifie que tu es bien dans le VBAProject correspondant au nom de ton classeur Excel (c'est 2 lignes au-dessus de Feuil1). Il suffit de double-cliquer sur Feuil1 dans l'éditeur VBA et de coller sur la grande feuille blanche le code que je t'ai transmis.

Ce code fonctionne tout seul dès que tu tentes d'effacer une ou plusieurs cellules de la plage A1:C10.

Donc, pour adapter le code, il suffit de remplacer la plage A1:C10 par la plage où tu veux que la question soit posée.

NB : essaye le fichier transmis d'abord !

Voilà une explication du code VBA proposé :

Private Sub Worksheet_Change(ByVal Target As Range)

'S'il y a une intersection entre la plage de cellules A1:C10 et la plage de cellules modifiées (champ)
If Not Intersect([A1:C10], Target) Is Nothing Then

'Teste si toutes les cellules du champ sélectionné sont vides. CountA(Target) est l'équivalent VBA de la fonction
Nbval(Target)


If Application.CountA(Target) = 0 Then

'Question posée
If MsgBox("Etes-vous sur ? ", vbYesNo) <> vbYes Then

'Si la réponse est non
Application.EnableEvents = False 'désactivation de l'événement de modification du champ
Application.Undo 'remise de la valeur d'origine avant effacement
Application.EnableEvents = True 'réactivation de l'événement de modification du champ
End If
End If
End If
End Sub



Modifié par Marmotte18 le 01/02/2009 20:17
1000cbr
 Posté le 01/02/2009 à 20:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

RE :

D'abord je n'avais pas du tout compris qu'il fallait essayer de supprimer des zones dans ton fichier.

Ensuite, dans ma question, j'avais précisé que je cherchais une solution sans passer par Visual Basic.

Enfin cela ne correspond pas à ma demande qui est de demander un conditionnement de suppression de zones suite à l'actionnement de la macro que j'ai appelée RAZ dans le fichier que j'ai passé.

Dans mon fichier il y a 600 ou 700 zones non consécutives qui sont modifiables une par une ou par groupe. En revanche, si je veux repartir avec un fichier vierge et toutes ces zones à blanc je suis obligé de passer par une macro.

Je ne veux pas conditionner la suppression de quelques unes de ces zones mais conditionner la suppression de l'ensemble des zones (définies dans la macro RAZ) en répondant oui à une question posée lors de l'appel cette macro.

Je m'excuse d'insister, tu es sympa de chercher à me dépanner mais malgré tout ta réponse ne me satisfait pas pour les raisons précisées plus haut.

Bérylion
 Posté le 01/02/2009 à 21:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut

NON, ça n'est pas possible autrement que par VBA.

en revanche, tu peux réduire ta macro à sa plus simple expression :

Sub raz()
'
' raz Macro
' Macro enregistrée le 02/09/2007 par DELORIEUX
'
Range("e7:e100,b5,f8:h100,c8:c100,k8:l100").ClearContents

End Sub

Ensuite, tu ne nous indiques pas quelle condition tu veux appliquer ?!

donc difficile de te répondre...

Si tu souhaites juste une confirmation avant d'effectuer ta RAZ, il suffit d'utiliser ce code :

Sub raz()
'
' raz Macro
' Macro enregistrée le 02/09/2007 par DELORIEUX
'

If MsgBox("êtes vour sûr de vouloir effectuer une RAZ ?", vbYesNo, "Demande de confirmation !") = vbYes Then Range("e7:e100,b5,f8:h100,c8:c100,k8:l100").ClearContents

End Sub



Modifié par Bérylion le 01/02/2009 21:31
galopin01
 Posté le 01/02/2009 à 21:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

bonjour,

Les formules ne posent pas de question et n'exécutent pas de macro.

Par conséquent si tu veux exécuter une macro sous condition, il faudra bien passer par du code VBA en modifiant ta macro RAZ (ou à la rigueur en rajoutant une macro qui te posera une question avant de lancer la macro RAZ)

A+

Bérylion
 Posté le 01/02/2009 à 21:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Marmotte18 a écrit :

J'ai une réponse faite par un excellent technicien d'Excel qui s'appelle BOISGONTIER. Je l'ai félicité pour sa trouvaille et j'espère qu'elle te conviendra.

Salut la marmotte

le Môssieur en question est une pointure !!

Il nous fait quelquefois l'honneur d'une visite sur PCA, et je le salue au passage s'il nous lit...

1000cbr
 Posté le 02/02/2009 à 08:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour à tous et à toutes

Merci pour votr eaide.

Je vais utiliser la solution de Bérylion qui correspond juste à mon besoin.

Cordialement

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
149,99 €Nettoyeur haute pression Karcher K4 Power Control à 149,99 € (via ODR)
Valable jusqu'au 24 Mai

Cdiscount fait une promotion sur le nettoyeur haute pression Karcher K4 Power Control à 179,99 € alors qu'on le trouve ailleurs à partir de 199 €. Or Karcher rembourse actuellement 30 € pour l'achat de ce nettoyeur qui vous reviendra à 149,99 € après remboursement.

Le Nettoyeur haute pression K4 Full Power est livré avec un pistolet ergonomique, un flexible 8 m, un nez de robinet pour raccorder un tuyau d’arrosage, une lance Vario Power et une rotabuse. 

Avec sa poignée télescopique rétractable, l'appareil peut être déplacé et rangé facilement. Le K4 Power Control est idéal pour une utilisation intensive et pour nettoyer vélos, outils de jardin, meubles de jardin, etc. Pression max 130 bar, débit max 420 L/h, puissance 1800 Watts, surface conseillée ≈ 30m²/h, moteur universel, pompe Ncor.


> Voir l'offre
799,99 €Ultraportable 14 pouces Asus Vivobook S3400QA (OLED WQXGA+, R7 5800H, 16 Go, SSD 512 Go) à 799,99 €
Valable jusqu'au 24 Mai

RueDuCommerce fait une promotion sur l'ultraportable Asus Vivobook S3400QA-KM031T qui passe à 799,99 € au lieu de 1199,99 €. Cet ordinateur dispose d'un superbe écran 14 pouces OLED WQXGA+ 2.8K (2880x1800), d'un processeur AMD Ryzen 7 5800H (8 coeurs) avec chip Radeon Vega 8 intégré, 16 Go de RAM, un SSD NVMe de 512 Go et tourne sous Windows 10 upgradable à Windows 11. Il ne pèse que 1,40 kg et propose une autonomie réelle de 7h30.


> Voir l'offre
183,93 €Imprimante 3D Creality Ender 3 v2 à 183,93 € (stock Europe) avec le code NNNGKBCR2
Valable jusqu'au 25 Mai

GeekBuying fait une belle promotion sur l'imprimante 3D Creality Ender 3 v2 à 183,93 € avec le code NNNGKBCR2 On la trouve ailleurs autour de 220 €. L'imprimante est expédiée depuis un stock Europe (en Pologne). Elle sera donc rapide et vous êtes sûr de ne pas avoir de douane. 

La Creality Ender 3 v2 est l'une des machines les plus populaires actuellement sur le marché. Et pour cause. Elle dispose d'un volume d’impression de 220 x 220 x 250 mm, est équipée d'un plateau chauffant inspiré du BuildTak, d'un nouvel écran LCD 4.3 pouces et offre des fonctionnalités pratiques comme la reprise de l'impression après une coupure de courant ou le conduit pour le filament étroit. L'imprimante 3D est facile à assembler et le calibrage est aisé grâce aux gros boutons. 


> Voir l'offre

Sujets relatifs
traitement données sous excel
Traitement Chaine VBA EXCEL
Traitement de listes sur Excel
Traitement de chaînes de caractère sous excel
menu contextuel excel 2007 ne fonctionne plus
HTML dynamique - Excel
Excel ,impression tableau
[EXCEL] Filtrer par noms .. URGENT !!
Excel 2010
2 pages par feuille dans macro excel
Plus de sujets relatifs à Traitement conditionné par une réponse sur Excel
 > Tous les forums > Forum Bureautique