Verrouillage feuilles

Résolu/Fermé
chacha - 25 oct. 2009 à 00:05
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 23 nov. 2009 à 09:57
Bonsoir,je voudrais créer une macro pour vérrouiller la feuilles aprés enregistrer et quitter le documment .Est-ce possible , doit t'on créer un bouton avant de faire la macro.
Merci à celui ou celle ki m'aidera.

21 réponses

Raymond PENTIER Messages postés 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 275
25 oct. 2009 à 01:52
Des feuilles de quoi ?
Veux-tu préciser le logiciel et sa version ...
0
sur excel
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
25 oct. 2009 à 16:02
Salut,

Explique clairement ce que tu veux faire, l'histoire du bouton n'est pas un probléme, ni d'écrire un code, le problème est de savoir ou le mettre en fonction du résultat attendu

tu as une feuille de calcul, est elle protégée avec des cellules déverrouillées ce qui permet la saisie que dans ces cellules !

que veux tu dire par verrouiller les feuilles, à la fermeture veux tu mettre un mot de passe qui te sera demandé pour réouvrir ce fichier !

complété d' un enregistrement automatique et fermeture du fichier !

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
0
Oui c'est tout à fait ça,j'ai bien une feuille de calcul, qui est protégée avec des cellules déverrouillées ce qui permet la saisie que dans ces cellules ,mais je voudrais que chaque utilisateur est accés uniquemment à leur classeur , c'est pour cela que je veux mettre un mot de passe qui leur sera demandé pour réouvrir ce fichier et
complété d' un enregistrement automatique et fermeture du fichier .Merci d 'avance si tu peut me dépanner .Par contre j' ai une autre question a te poser :

j' ai dans une colonne A une demande de travaux différentes ,je voudrais dans la colonne b lier automatiquement un code(à 4 chiffres) pour chaque demande d'intervention.
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
27 oct. 2009 à 22:16
Re,

Plusieurs possibilités,

1/ tu souhaites que seulement les personnes habilitées puissent avoir accès au fichier,

Si c’est un nouveau fichier que tu enregistre pour la première fois ENREGISTRER, si c’est un fichier existant ENREGISTRER SOUS et avant de confirmer l’enregistrement dans la boite de dialogue Enregistrer sous tu remarqueras dans la barre d’outils OUTILS clic dessus et sur Options Générales dans mot de passe pour la lecture saisis un mot de passe que tu confirme, ce mot sera obligatoire pour l’ouverture du fichier

2/ tu souhaites que ce dossier puisse être consulté, mais modifié seulement par les personnes procédant le mot de passe, dans ce cas à la place de saisir le mot de passe dans mot de passe pour la lecture tu le saisis dans mot de passe pour la modification
A l’ouverture du fichier le mot de passe est demandé, si tu ne l’a pas tu peux afficher le fichier en lecture seule et l’enregistrement est impossible

3/ tu peux mettre un mot de passe pour la lecture et un mot de passe différent pour la modification ce que permet de limiter la lecture à certaines personnes possédant le code pour la lecture et les personnes possédant les deux codes pour l’ouvrir et le modifier

Pour l’enregistrement automatique, c’est tout à fait possible, à la fermeture du fichier, sans faire apparaître la boite de confirmation. Mais il y a un risque, s’il est commis une boule sur le fichier, tu le fermes sans l’enregistrer, à l’ouverture tu le récupères. Avec un enregistrement automatique tu ne contrôles plus

Pour mettre un code quatre chiffres en fonction de la demande en A, en B lors de la première intervention, exemple A2 l’intervention et en B2 saisis le premier code exemple 1111 en B3 colles cette formule et incrémente la vers le bas
=SI(A3<>"";B2+1;"") si tu souhaites commencer le code à 0001 il faudra mettre la colonne en Format/Cellule/Nombre/Personnalisé saisir dans Type saisir quatre zéro 0000

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
0
bonsoir,

Encore merci , je suis impressionnée comment que tu maitrise excel.
J'aurais à nouveau une ptite question à te poser .Dernierement pendant ma formation d 'excel j ' ai vu rapidement le principe d 'une macro .J' en ai fait une avec le formateur qui m 'ai utile pour le tableau que je réalise .Puis je recopier mot à mot la formule , sans enregitrer la manip.

Encore Merci Bonne soirée.
0

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

Posez votre question
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
28 oct. 2009 à 22:55
Re,

Je ne comprends pas très bien, Puis je recopier mot à mot la formule, sans enregistrer la manip

Si ta macro rempli le rôle attendu tu peux la recopier mais sans enregistrer la manip que veux tu dire !

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
0
Oui je me suis mal exprimé ,mais c'est bon en insistant j' ai réussi à refaire la macro ,j'ai juste un ptit souci , car la macro que j'utilise sert à copier une feuille dans un classeur pour la remettre dans un fichier de récap mais seulement il me la recopie pas dans la feuille ou je souhaite ,mais en insistant je vais bien y arriver.Par contre peut -tu me dire si il a un fonction qui existe à convertir une date en numéro de semaine :

Exemple : 01/11/2009 = semaine N° 45.

Merci d 'avance a+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
1 nov. 2009 à 22:43
Re,

on peut créer une formule, ou une fonction personnalisé ou utiliser une fonction d'Excel, dans ce cas il faut activer auparavant la macro complémentaire "Utilitaire d'analyse" (Outils/Macros complémentaires/cocher Utilitaire d'analyse)

pour une date en A5 par exemple la formule sera

=NO.SEMAINE(A5)

sinon tu as

=ENT(MOD(ENT((A5-2)/7)+0,6;52+5/28))+1

ou si Outils/Options/Onglet Calcul est coché calendrier depuis 1904

=ENT(MOD(ENT((A5-2+(JOUR(1)=2)*6)/7)+0,6+((JOUR(1)=2)*208);52+5/28))+1

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
0
merci

a+
0
bonjour mike,

J' ai encore besoin de tes services pour finaliser mon tableau en cours pour le récap des heures par pers. :


Dans le colonne A : la tache de travail
Dans la colonne B : la date d'éxecution
Dans la colonne c: le temps passer


Je voudrais dans la colonne D , le total d' heure par jour inférieur à 7h30 en rouge et supérieur à 7h30 en rouge. Ca je sais le réaliser . Par contre j'ai une contrainte car un jour peut avoir plusieur ligne car la pers a plusieur tache différente dans la journée.Et je souhaiterais aussi le total par semaine au dessus de 37h en rouge.

Et pour finir j'ai un deuxieme souci dont je ne sais pas du tout faire .Cela concerne toujours dans le meme tableau . Chaque personne tape ec(en cours) quand leur tache de travail n' est pas terminer , et t quand c'est terminer , mais je souhaiterais inserer une ligne automatiquement quand c' est en cours et copier coller la ligne entiere correspondante a la tache de travail en cours.

J'espere que j' ai été claire dans mes explications et que tu pourras me dépanner en attendant je te remercie pour tes services .

A+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
8 nov. 2009 à 15:30
Re,

Je crois qu'il y a confusion

le total d' heure par jour inférieur à 7h30 en rouge et supérieur à 7h30 en rouge

Je ne suis pas sur mon PC, dès que je rentre chez moi je te fais un fichier exemple ce sera plus facile et plus rapide à t'expliquer
0
merci a toi de m' aider ; Peut importe la couleur pour inferieur ou superieur ci c'est la meme ce n' est pas grave , c'est pour l'utilisateur quand il rentre ces heures q'uil voit s' il a fait plus ou moins que 7h30.

a+ tard
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
9 nov. 2009 à 11:39
Re,

Regardes si c'est ce que tu veux

https://www.cjoint.com/?ljlM14YP0j
0
Bonsoir,

Merci beaucoup c'est tout à fait cela, mais je voudrais que tu me détail un peu la formule pour comprendre et surtout au cas ou je dois changer des données.

Pour la formules de la durée quotidiennes je l'ai comprises. Par contre pour les couleur dans la forme conditionnelles je ne comprend pas <> à 0,3125 pour la durée quotidienne et > à 1.54... Peut tu m 'expliquer ?
Le 1.54 correspond à 37h00 .Encore merci , et pour le deuxiéme probléme est-ce possible ou pas ?

a+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
9 nov. 2009 à 23:42
Re,


Dans une cellule saisis 7:00 et fais Format/Cellule/Onglet Nombre/Standard ce qui te donne 0,3125 la même chose pour 37:00 il aurait été possible d'écrire une formule savante pour avoir ce même résultat, autant saisir directement cette valeur

En E3 j’ai une conditionnelle en début de formule qui n’est pas en E2 si on veut la même formule, il est impératif d’avoir en E1 une cellule vide

Pour insérer automatiquement des lignes, c’est possible en VBA, je n’ai pas trop de temps, mais je regarde comment faire quelque chose de simple
0
merci,c'est gentil

a+
0
bonsoir mike,

J' ai essayer de faire la macro que je t'ai demander mais malheureusementcela ne marche pas .Peut tu me dire les erreurs que j' ai pu faire , si tu a le temps.

Je te remercie d 'avance.

a+

' si la cellule dans la colone h contient "ec" insertion d'une ligne et copier coller la precedente
' si cellule contient "t" passe a la ligne suivante


If Cells("h").Text = ec Then

Selection.EntireRow.Insert
Range("A12").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range("A13").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ligne = ligne - 1
End If


If Cells("h").Text = T Then
ActiveCell.Range("h+1").Select



End If


End Sub
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
14 nov. 2009 à 14:26
Re,

Vite fait, regardes ce code qui recherche "ec" en colonne H, si valeur trouvée, insertion d'une ligne au dessous rétabli les formules colonne D et E et efface "ec" pour éviter la création de lignes inutiles

Sub Macro2()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Dim LigFin As Long
Col = "H"
LigFin = [A65536].End(xlUp).Row + 1
NumLig = 1
With Sheets("Feuil1")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = "ec" Then
.Cells(Lig + 1, Col).EntireRow.Insert
[D3:E3].Copy
Range([D3], [E65536].End(xlUp)).PasteSpecial Paste:=xlPasteFormulas
.Cells(Lig, Col).Value = ""
End If
Next
End With
Range("A2").Select
Application.CutCopyMode = False
End Sub

Un exemple sur ce lien

https://www.cjoint.com/?looyF4GHYa

0
re,
oui la macro est bien , mais par contre si ec s'efface apres la ligne inserer peut on mettre une condition a la place (vert par exemple qu' en "ec"), je peut déja la définir dans la colonne "h" ou pas.Par contre est-ce possible de copier la ligne dans le cas "ec" apres son insertion?

a+
Merci
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
14 nov. 2009 à 17:34
Re,

L’effacement "ec" est volontaire afin d'éviter la multiplication de lignes si on active accidentellement le bouton.

Explique ce que tu veux dire par
mais par contre si ec s'efface après la ligne inséré peut on mettre une condition a la place (vert par exemple qu’en "ec"), je peut déjà la définir dans la colonne "h" ou pas.
Veux-tu mettre la ligne en vert lorsqu’il y a ec en H

Par contre est-ce possible de copier la ligne dans le cas "ec" apres son insertion?
Veux tu mettre ec sur la nouvelle ligne en H
0
oui j'ai compris suivant ton exemple que c'est volontaire de l' effacement en "ec".c'est pour cela que je souhaiterais de mettre la cellule h en vert quand ec s' efface .Est ce possible .Par contre je vais essayer de d'expliquer au mieux pour le copier coller dans la ligne.
Je vais t'expliquer au mieu le tableau en lui meme.

c' est un tableau pour suprimé des bons de travail sur papier

colonne a = non du tech
colonne b =date de la demande
colonne c= nom du demandeur
colonne d = demande d'intervention
colonne e = n°de bon
colonne f = date d'exécution
colonne h = ec ou t
colonne g = durée de la tache
colonne i = durée hebdo
etc......

chaque tech tape la durée de la tache et spécifie ci c'est en cour( ec) ou terminer.Comme les tech ne maitrise pas tous l 'ordi et excel , c'est pour cela que je voulais dés qui taper ec, une ligne s'insere automatiquement et copier la ligne entiere des que c' est " ec" sans perdre les donneées des autre cellules ;Car une tache de travail peut durée plusieur jour c' est pour cela qui falait trouver un moyen de savoir si ils ont terminer ou pas .

A+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
14 nov. 2009 à 18:41
Te,

remplaces la macro2 dans le module de mon fichier exemple par ce code pour la couleur, pour le reste je vois ça dans la soirée

Sub Macro2()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Dim LigFin As Long
Col = "H"
LigFin = [A65536].End(xlUp).Row + 1
NumLig = 1
With Sheets("Feuil1")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = "ec" Then
.Cells(Lig + 1, Col).EntireRow.Insert
[D3:E3].Copy
Range([D3], [E65536].End(xlUp)).PasteSpecial Paste:=xlPasteFormulas
.Cells(Lig, Col).Value = ""
.Cells(Lig, Col).Interior.ColorIndex = 4
End If
Next
End With
Range("A2").Select
Application.CutCopyMode = False
End Sub
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
14 nov. 2009 à 21:27
Re,

Récupères ton fichier et testes s'il correspond à tes attentes, feuille 1 le déclenchement macro se fait par le bouton, feuille 2 le déclenchement est automatique dès qu'en H il est saisi ec

https://www.cjoint.com/?lovxAq6zBU

lorsque j'aurai cerné tes attentes, il sera peut être possible d'écrire le code différemment
0
re,cela me va trés bien le déclenchement automatique en h c 'est parfais .Cela correspond à mes attentes il reste a développer la copie exacte des données de la ligne précedente en ec.Tant que le tech inscrit "ec" en h cela veut dire q'u'il doit obligatoirement rentrée la durée de la tache méme si il a passer 0heure dessus.c'est pour cela que le déclenchement automatique en h est important.J'espere que j'ai été claire dans mes explications
A+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
15 nov. 2009 à 14:40
Re,

Tu veux que la ligne qui contient "ec" soit recopiée sur la nouvelle ligne créée !

Ou veux-tu additionner la ligne précédente avec la ligne contenant ec !

si c'est cela, le cumul des taches quotidiennes et hebdomadaire seront faut parce que les durées seront totalisées plusieurs fois, ou il faut revoir les formules

Ou veux tu copier les données de A à E concernant nom de techn., date demande etc …

Le principal est que je comprenne, ce qui est évident pour toi l'est moins pour moi vu de l'extérieur

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Oui c' est cela je veux quel la ligne qui contient ec soit recopier sur la nouvelle ligne creer, qui permettra au technicien de rentrer la durée de la tache ci celle ci n' est pas terminer dans la journée . c' est pour cela dans la duréé hebdo on se retrouve avec des heures differente pour la meme journée (dans le cas si tu te souvient quand tu m'aaider pour le total quoti et hebdo.
Suis je assez clair

a+
0
ou sinon pourqoui pas copier les cellules de A à E , mais je voudrais savoir si je tape la durée de l' heure est ce que le temps va additiooné dans les colonnes des heures quoti et hebdo.
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
15 nov. 2009 à 21:13
Re,

Testes la feuille 2 du fichier ci-joint, si j'ai tout compris, je pense que la durée de la tache sera à revoir

https://www.cjoint.com/?lpvlCxyN1N
0
oui c' est bien ce que je voulais , et les formules marche aussi , le calcul quoti et hebdo marche et pas de problemes pour la durée de la tache.Par contre si je veux rajouter des colonnes avant la durée de la tache est ce que la formule marchera. Sinon j' ai rajouter une condition dans la cellule h si terminer couleur rouge .Ca a l' air de marcher .Je suis passer tout simplement par mise en forme conditionnelle et j' ai selectionner la plage en colonne h.Je ne sias pas si c'est la bonne démarche .Comment a tu associer directement la fomule automatiquement en h.Faut il faire une démarche ou c'est directement programmer dans la macro ,je ne vois pas quelle ligne ca peut etre .En attendant un grand merci de ta part et de ta compréhension car mes explications ne sont pas toujours clair
a+
0
re,
La formule s'applique à partir de la ligne 11.
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
15 nov. 2009 à 22:44
Re,

Pour la couleur, elle est prévue dans le code à cette ligne

.Cells(Lig, Col).Interior.ColorIndex = 4

par contre si tu rajoutes des colonnes, les formules vont automatiquement se mettre à jour, il n'en est pas de même pour le code VBA qu'il faudra revoir

pour le T de terminé colonne H tu peux passer par une mise en forme conditionnelle sans problème


quelle formule s'applique à partir de la ligne 11
0
re,
Une derniere question ,est ce que je suis obliger d 'attacher un bouton pour la macro.
et la ligne "Range(ActiveCell, Active Cell.Offset (0, 4) ) .Copy " correspond t'elle à la copy des colonnes le 4 veut - il dire le nombre de colonne à copier si oui dans le tableau je compte 5 colonne avant la date d'éxé .Peut tu m'expliquer.

a+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
16 nov. 2009 à 13:23
Re,

Dans le classeur que je t'ai envoyé, sur la première feuille tu as un bouton qui déclenche la macro qui se trouve dans le module, mais j'aurai très bien pu mettre le code dans les propriétés du bouton ce qui m'aurait évité d'insérer un module. Dans l'exemple j’ai mis le nom de la macro "Macro2"

Private Sub CommandButton1_Click()
Macro2
End Sub

Sur la feuille 2 le code est dans les propriétés de la feuille (clic droit sur l'onglet et visualiser le code). L'intérêt est son déclenchement automatique qui est lié aux saisies de la colonne H

Pour ta question
"Range(ActiveCell, Active Cell.Offset (0, 4) ) .Copy "

sur une ligne précédente, ce code sélectionne la cellule 7 colonne à gauche à partir de la cellule ou il est saisi "ec" autrement dit la cellule colonne A sur la même ligne
.Cells(Lig, Col).Offset(0, -7).Select

et cette ligne
"Range(ActiveCell, Active Cell.Offset (0, 4) ) .Copy "
sélectionne la plage de la cellule colonne A à la cellule 4 rangs à droite de A, c'est à dire de A à E pour la copier

Plus haut dans le code, cette ligne, recopie les formules de la colonne I et J deux lignes plus basses que la cellule ou est saisi "ec".
Range([I3], [J65536].End(xlUp).Offset(2, 0)).PasteSpecial Paste:=xlPasteFormulas

Si sur plusieurs lignes à la suite il n'est pas saisi "ec" il est possible que des lignes ne soient pas renseignées. Pour une marge de sécurité il est possible d'augmenter la copie des formules d'une dizaine de lignes voire plus

Range([I3], [J65536].End(xlUp).Offset(10, 0)).PasteSpecial Paste:=xlPasteFormulas
0
Re, je suis arriver a appliquer la macro et rajouter des colonne en plus,je suis tres contente et merci pour tout tes services .Malgré tes bonnes explication je ne suis pas arrivée à appliquer la macro dans la cellule "h" .La formule marche avec un bouton.Est- ce important que la feuill1et feuil2 on les méme donnée pour appliquer la formule automatique ;Pourtant j' ai bien appliquer comme tu m' a expliquer dans propriete de la feuille et visualiser code mais cela ne marche .Est-ce le fait que j'ai deux feuils differente avec des paramétres différents.

a+
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
16 nov. 2009 à 21:23
Re,

Je t’ai écrit ces deux procédures de sorte que tu fasses un choix

Si tu déclenches la macro avec un bouton le plus simple, est de placer le code dans un module, créer un bouton avec la barre d’outils Formulaires et l’associer à ta macro (clic droit sur le bouton/affecter à une macro)
Si tu souhaites le déclenchement automatique et que ça s’applique à une feuille, dans les propriétés de la feuille (clic droit sur l’onglet/Visualiser le code

Private Sub Worksheet_Change(ByVal Target As Range)

Placer ici le code

End Sub

Si tu souhaites te servir de ce code sur plusieurs feuilles, avec déclenchement automatique, places le code dans un module

Sub Macro2()

Ici le code

End Sub

Et dans les propriétés de chaque feuille colles ce code

Private Sub Worksheet_Change(ByVal Target As Range)
Macro2
End Sub
0
Désolé tes explications sont claire mais cela ne marche j' ai tout qui a défilé ce m' a copier la ligne en multi exemplaire .Qunad tu dis code c' est bien cette phrase là Private Sub Worksheet_Change(ByVal Target As Range) .Je suis désolé car tes explication sont trés claire mais j'oubli de faire quelque chose ?Quand je clic droit sur l 'onglet je rentre bien le code.
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
16 nov. 2009 à 22:42
Non, erreur de ma part, dans le code tu trouveras cette ligne
With Sheets("Feuil2")

Si tu souhaites attribuer ce code à une feuille nous sommes contraints à placer le code dans chaque propriété de feuille et surtout pour la feuille2
With Sheets("Feuil2")
With Sheets("Feuil3") pour la Feuille 3 etc …ou remplacer Feuil(x) par le nom de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)

Placer ici le code

End Sub

sinon il faut que je revoie le code, ce que je ferai plus tard
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 111
17 nov. 2009 à 14:47
Re,

J'ai eu deux minutes pour revoir le code.

Dans le module tu trouveras cette ligne

With Sheets("Feuil2")

remplace la par

With ActiveSheet

ensuite dans chaque propriété de feuille que tu comptes utiliser la macro, colles ce petit bout de code

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Columns.Count > 1 Or Target.Column <> 8 Then Exit Sub
Macro2
End Sub

la macro se déclenchera automatiquement lorsque tu saisras "ec"
0
Bonjour,
il avait longtemps que je ne t'ai pas embêter mais cette semaine j'étais surcharger de travail .j' ai bien appliquer ta macro pour le tableau ,celle avec le bouton marche trés bien , mais j' ai appliquer l autre , cela ne fonctionne pas du tout je te transmet donc la macro que j' ai appliquer dans la feuil1 et clic droit visualiser macro , j' ai surement fait une gourde en recopiant peut tu m 'aider à éclaircir mon erreur , je me fais vraiment passer pour une nul.Merci d 'avance.
Voici tel que j' ai la macro sur le clic droit .Est ce que c' est que je n'est pas de nom de macro quelle marche pas?




Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Dim LigFin As Long
If Target.Columns.Count > 1 Or Target.Column <> 8 Then Exit Sub
If Target = "ec" Then Range("B25").Select
Col = "J"
LigFin = [A65536].End(xlUp).Row + 1
NumLig = 1
With ActiveSheet
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value = "ec" Then
.Cells(Lig + 1, Col).EntireRow.Insert
[L3:M3].Copy
Range([L3], [M65536].End(xlUp).Offset(2, 0)).PasteSpecial Paste:=xlPasteFormulas
.Cells(Lig, Col).Value = ""
.Cells(Lig, Col).Interior.ColorIndex = 4
.Cells(Lig, Col).Offset(0, -9).Select
End If
Next
End With
Range(ActiveCell, ActiveCell.Offset(0, 7)).Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Range("A2").Select
Application.CutCopyMode = False
End Sub
0