Excel / pb / appel à un ...ami...

Résolu/Fermé
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 12 janv. 2012 à 23:42
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 14 janv. 2012 à 11:29
Bonsoir à tous et ttes,

Une fois n'est pas coutume, ce n'est pas pr moi que j'écris ce post mais pour aider deux amis qui ont des difficultés avoir leur formule excel. Je ne sais ce qui sera possible de faire mais, comme je sais que sur ce forum il existe des personnes qu ont les moyens de m'aider, je leur livre mes questions en espérant qu'ils voudront bien m'aider.

1) En a1, j'ai deux dates séparée par un tiret. (02/01/2012 - 06/01/2012). Ce qui représente les date d'une semaine (du lundi au vendredi)
La question est de savoir comment faire en sorte d' avoir automatiquement les dates des semaines suivante inscrite dans les cellules d'en dessous et écrit de la même manière.
Ex. en a2 avoir 09/01/2012-13/01/2012
En a3 avoir 16/01/2012-20/01/2012
...


2) La seconde question est de savoir s'il est possible de protéger une cellule après y avoir inscrit qq chose dedans.
Ex. la cellule a1 est vide, j'ecrit dedans et une fois que cette cellule contient quelque choses elle est protégé automatiquement.

3) Troisième et dernier question. j'ai un tableau, a1:f25. J'ai des formules dans la colonne F.
Si j'insère une ligne dans le tableau, la formule ne sera pas reprise sur cette nouvelle ligne.
Y a-t-il selon vous un moyen, pour faire ne sorte que quand j'insérer une ligne, le formule viennent se mettre ?

Merci à vous qui lirez ce post et qui aurez le gentillesse d'aider mes potes.

Très cdlmnt,

Berni///
A voir également:

5 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
13 janv. 2012 à 06:18
Bonjour,

1) en A3
=TEXTE(GAUCHE(A2,10)+7,"mm/dd/yyyy")&"-"&TEXTE(DROITE(A2,10)+7,"mm/dd/yyyy")
(je te laisse remettre tout ça en format français)

2) Tu déverrouilles toutes les cellules de ta feuille (format de cellule\protection\verrouillée).
Tu protèges ta feuille.
Tu met ce code derrière ta feuille (clic droit sur l'onglet puis visualiser le code puis coller)
Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Unprotect
    Target.Locked = True
    Target.FormulaHidden = False
    ActiveSheet.Protect
End Sub

3) comme tu as protégé la feuille sans autoriser l'inserrtion de ligne, tu es obligé de gérer manuellement l'insertion en créant une macro qui insère une ligne au dessus de la sélection en cours, recopie la formule en colonne F et protège la formule copiée.
tu ajoutes donc dans un module le code suivant :
Sub Insertion_ligne()
    Set Target = Selection()
    ActiveSheet.Unprotect
    Application.EnableEvents = False
    Target.EntireRow.Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Application.EnableEvents = True
    Range("F" & Target.Row - 2).Select
    Selection.AutoFill Destination:=Range("F" & Target.Row - 2 & ":F" & Target.Row - 1), Type:=xlFillDefault
    ActiveSheet.Protect
End Sub
je n'ai pas testé/débogué ce code comme il le mériterait (par exemple, une insertion en ligne 1 ne doit pas bien se passer).
Je te laisse faire.

cordialement
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
13 janv. 2012 à 07:47
Bonjour JvDo,

je tiens à vous remercier pour votre réponse surout que j'ai tt compris.. :-) (faut dire que je vais à bonne école... :-) petit clin d'oeil à vaucluse)

j'ai testé la formule en A3 formule que j'ai mis en "français" et qui donne =TEXTE(GAUCHE(A2;10)+7;"jj/mm/aaaa")&"-"&TEXTE(DROITE(A2;10)+7;"jj/mm/aaaa")

cela marche.. ;-) merci

pour le point deux...là aussi ça marche :-))

le point trois, je n'ai pas tester mais je voulais savoir mais je voudrais apporter un complement d'info. si l'insertion de la ligne n'est pas sur un fichier sur lequel je n'ai pas protéger la feuille (cfr point 2) j'imagine que la macro n'est pas la même...que devrais-je changer ?

je réitére mes remerciement surtout que vous allez rendre deux personnes assez contente.... merci pour elles...

trs cdlmnt..bon début de journée...

berni///
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
13 janv. 2012 à 08:24
Bonjour,

le souci, s'il n'y a pas de protection, c'est que l'insertion ne peut pas se maîtriser simplement. En effet, rien n'oblige l'utilisateur a utiliser la macro pour insérer : il peut faire un clic droit\insérer, utiliser le ruban Accueil\insérer\insérer lignne ou son équivalent clavieri ALT L I R, le ruban d'accès rapide....
Et dans ces cas, pas de traitement des formules en colonne F.

Une solution quand même : dans la macro évènementielle du point 2), ajouter un contrôle de la colonne F et remplir les éventuelles cellules sans formule.
En effet, l'insertion manuelle génère l'évènement on_change et donc l'appel de la macro.

Reste à voir comment ça ralenti l'interface utilisateur.

Cordialement
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
14 janv. 2012 à 10:16
Bonjour JvDo,

merci pour votre reponse.

j'ai fais ce que vous aviez préconisé via la macro pour l'insertion d'une ligne (avec feuille protégée).
seule souci c'est que je dois ne pas avoir compris comment je dois faire pour faire en sorte que la formule en F soit prise en compte lorsque j'insére. je joins le fichier test ( https://www.cjoint.com/?3AokpAj67Pc ) mais...c'est la partie : " recopie la formule en colonne F et protège la formule copiée. tu ajoutes donc dans un module le code suivant" que je dois pas bien éxécuter/comprendre. pouvez-vous m'éclairer ?
car si vous regarder le tableau, j'ai insérer une ligne 17 mais dans la cellule f17, j'ai pas la formule :-(

une dernier chose (je devance probablement la question de mon ami), si je voualis faire une marco qui protége les cellules qui vennent d'être encodée comme pourrais m'y prendre.

exmple, j'ai un tableau ou j'encode ligne après ligne le courrier entrant.
lorsque j'ai fini d'encoder le courrier du lundi, je sur un bouton nomme "valider" et la marco protége les cellules,
le mardi, j'encode les courriers et ensuite je clic sur le bouton et il protége evidemment les données du lundi, du mardi....
cela peut-il être possible ?
en fait cela devrait protéger les lignes remplies, un fois qu'on à valider via la bouton 'valider".

sinon, j'ai decouvert un truc que je savais pas...lorsque ma feuille est protégée et que j'ai validé les données entrées dans une cellule, si cette donnée est pas correct (une erreur par ex.) si je reviens sur la cellule, j'aurais le message qu'elle est protégée. si j'ôte la protection, je sais changer mon erreur (mettre 2 à la place de 3) je valide et..prouesse de la techonologie ma cellule est de nouveau protégée...je sais que cela va faire sourire certain mais pour quelqu'un qui maitrise peu excel je trouve ça "merveilleux" :-) [comme quoi de simple chose peuvent donner un peu de bonheur]

merci de me faire part de votre avis/remarques...merci pour ce que j'apprends mais surtout pour l'aide qui est destinée à mon ami.

tres cdlmnt,

berni//
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
14 janv. 2012 à 10:58
Bonjour,

1) Sans vouloir gâcher ton bonheur, la protection de la celule est programmée dans la macro évènementielle.
Donc, quand tu corriges une cellule verrouillée (après déprotection), et que tu fais ENTER, tu pars dans la macro ON_CHANGE de la feuille1 qui reprotège ta feuille à la fin donc, ta cellule modifiée devient à nouveau non modifiable.

2) je repars au début de ton dernier post : la formule n'est pas recopiée en F17
ça me semble normal vu que tes formules sont en colonne H et que ta colonne F ne contient aucune formule.
Pour t'en tirer, je suppose que tu sais remplacer F par H dans la macro.

3) pour la protection sélective, et pour que tu améliores ton autonomie, je te conseille d'enregistrer une macro qui déprotège ta feuille, verrouille ta sélection et reprotège ta feuille.
tu obtiendras un code qui s'approchera de celui-ci :
Sub Macro1()
    ActiveSheet.Unprotect
    Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect
End Sub
Je n'ai pas écrit une ligne de code, j'ai effacé une ou deux lignes et autant de paramètres inutiles et tu obtiens un code qui, à partir d'une sélection manuelle, te protège les cellules de cette sélection.

cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
14 janv. 2012 à 11:06
Bonjour JvDo,

Merci de votre dernier post.

les personnes qui me connaissent, savent que je suis un "client" facile...je suis "vite" content et tjrs admiratif des performances d'excel et de ceux qui les maitrises (ils sont peu nombreux mais ceux que je connais...à chaque fois me surprennent...il(ils) se reconnaîtra(ont)...

ceci etait en réponse de "Sans vouloir gâcher ton bonheur..." le bonheur est fait de petit rien...et d'une certaine mesure vs y avez participer..Merci...

point 2) ...évidemment...qu'elle "biesse" je suis...

point 3) je vais tester ça...

merci à vous...excellent journée..et encore merci pr eux...

cdlmnt,

berni///
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
14 janv. 2012 à 11:21
Merci d'un boubourse à un "biesse" pour ce mot que je ne connaissais pas!
0
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
14 janv. 2012 à 11:29
"biesse" est plus soft que boubourse.. :-)
ont dit parfois q'elle "biesse" en parlant de soi ou en le disant à l'autre avec le sourire...C'est pas bien méchant..

bien à vous....
0