Liaisons cellules prioritaires

GBR

XLDnaute Junior
Bonjour,

Besoin d'aide pour l'exemple joint
Quand on modifie la cellule L19 EQ1 il faut quelle devienne prioritaire et que les modifs se repercutent sur toutes les autres equipes en cellule L19 (onglets EQ2,,,EQ3,,EQ4 etc...)
Quand on modifie la cellule L19 EQ2 il faut quelle devienne a son tour prioritaire et que les modifs se repercutent sur toutes les autres equipes en cellule L19 (onglets EQ1,,,EQ3,,EQ4 etc...)

Impossible d'utiliser les liaisons simples ='EQ1'!$L$19 ??????
y at'il une fonction d'excel ou une macro pour ce type de liaisons
Je plafonne, il me faut une aide.....
Ci joint prog d'exemple...

Amicalement
 

Pièces jointes

  • Planning.zip
    8.4 KB · Affichages: 28
  • Planning.zip
    8.4 KB · Affichages: 26
  • Planning.zip
    8.4 KB · Affichages: 25

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Salut à tous....

j'ai une autre dificultée, comment integrer 10 nouvelles feuilles avec lesquelles il ne faut pas interferer. autrement dit il faut modifier le code à quel niveau et comment ?

For Each F In Worksheets
If UCase(Left(F.Name, 3)) <> "BIL_SUM" ***est ce à ce niveau et comment ?***
For Each Cel_D In F.Range(Plage_T)

Je suppose que l'on ne peut plus employer <> pour exclure les nouvelles feuilles !!!

merci pour votre aide.
 

ERIC S

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

re

le problème restera toujours la gestion de tes noms de feuille, plus elle est simple plus tes écritures seront simples

If UCase(Left(F.Name, 3)) <> "BIL" or UCase(Left(F.Name, 3)) <> "XXX" then


tu peut jongler avec = <> or and left, right, mid

par contre attention

UCase(Left(F.Name, 3)) <>"BIL_SUM" doit toujours être vrai car tu compares les 3 caractères à gauche du nom de ta feuille avec 7 caractères donc pas logique
 

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Bonjour à tous ceux du forum, je reprends après un sommeil réparateur..

Merci ERIC S pour ton explication, cela voudrai dire que l'on ne peut pas employer de noms d'onglets differents ou du moins pour les 3 premiers caractères avec le code de GORFAEL ?

par exemple pour l'onglet "Calendar2009" il faut que j'écrive "BILCalendar2009" pour qu'il soit exclu.
Pour un autre "2MP" il me faut mettre "BIL2MP" ce qui me parait pratiquement impossible sans refondre totalement un programme existant qui comporte de nombreuses pages à exclures.

Il faut donc que j'emploi ton code sur chaque feuille pour éviter une refonte globale de mon programme ?


La macro unique de GORFAEL à mettre dans ThisWorkBook est interessante peut on contourner ce problème avec cette macro ?


merci pour votre aide
 

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Dans la suite de mes interrogations....
Comment exclure des liaisons prioritaires la plage des opérateurs sur le même onglet pour n'avoir qu'une plage définie en priorité de recopie.

merci encore..
 

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

bonjour à tous,

je suis toujours à la recherche du code simple et je n'arrive toujour pas à faire tourner mon petit projet..je galère

je joint un exemple....


Merci pour l'aide..
 

Pièces jointes

  • Planning250906.zip
    26.6 KB · Affichages: 18

Gorfael

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

ERIC S à dit:
re

juste une question Gorfael:

n'a-t'on pas intérêt aussi à faire le test du nom de feuille en début de macro (que se passe-t'il si on modifie une feuille bilan?)

peut-être sans objet mais j'ai peu detemps et je n'ai pas tout regardé, par contre la macro dans workbook me plait beaucoup
Salut
C'est un scandale : je fais une connerie, et ERIC S, il la détecte tout de suite :)

effectivement, avec la macro telle quelle, si tu modifie une des feuille (y compris bilan, la macro se déclenche et recopie la modif dans les feuilles "liées.

Il faut donc faire le même test que pour la boucle pour s'assurer que la modif est effectivement sur une des feuilles liées (Oups !! ;) )

Désolé de cette erreur et merci à ERIC S de me l'avoir relevé.

J'ai pas répondu plus tôt parce que j'ai eu un problème de liaison internet samedi matin, et comme je participait aux 24h d'Aïkido de Nantes, je n'ai pas été plus loin avant ce matin.

A+
 

ERIC S

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

Bonjour

retour de WE prolongé

Si je regarde ton dernier fichier, seul les feuilles finissant par 1AM doivent être intéressées donc il faut faire le test des noms avec

right(sheets(i).name,3) et le comparer avec "1AM"

je ne comprends pas :
"Comment exclure des liaisons prioritaires la plage des opérateurs sur le même onglet pour n'avoir qu'une plage définie en priorité de recopie."
 

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Bonjour,


merci ERIC S mais ou place tu ta ligne dans le code ?

je ne comprends pas :
"Comment exclure des liaisons prioritaires la plage des opérateurs sur le même onglet pour n'avoir qu'une plage définie en priorité de recopie."

Ne pas en tenir compte les opérateurs sont exclus par la formule
If Intersect(Range("C17:T22"), Range(Target.Address)) Is Nothing Then Exit Sub

Il faut que je place ta ligne de code ?
right(sheets(i).name,3) et le comparer avec "1AM"
right(sheets(i).name,3) = "1AM"

Il n'y à pas que les feuilles qui finissent par 1AM mais aussi des feuilles avec la fin "dar" "vis" etc....

Merci pour la réponse
 

ERIC S

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

re

il faudrait que tu nous donnes la liste de toutes tes feuilles concernées par la macro et la liste de toutes les feuilles non concernées.

Par contre, il est clair que la seule fàçon d'avoir des codes simples et efficaces est de créer un fil commun aux feuilles concernées par une opération, sinon si tu as 80 noms différents, il faudra écrire 80 tests:eek:
 

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Bonjour à tous,

Feuilles concernées par la recopie (concernées par la macro)

A1_1AM
A1_2AM
B2_1AM
B2_2AM
C3_1AM
C3_2AM
D4_1AM
D4_2AM
E5_1AM
E5_2AM
1MP
2MP

Feuilles non concernées par la recopie (faisant partie du classeur)

Calcul01
PASS
HelpSheet
Sheet1
Calendarcréation
Calendar2009
Calendar2008
Calendar2007
Data
ChritCal
RUN Feuille avec mot de passe
1SU
2SU
2SA Feuille avec mot de passe
1SA Feuille avec mot de passe
1MJ
2MJ
HREM
AffectPass Feuille avec mot de passe
Affect
Affect0
DateUtil
Liste
AROC2004
2006

(mots de passe differents à chaque fois)

Merci pour l'aide
 

ERIC S

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

re
a essayer, n'agit que sur feuilles se terminant par AM ou MP

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' si erreur, affichage N°
On Error GoTo Err_Workbook_SheetChange
'
Dim Plage_T As String
Dim Cel_T As Range
Dim Cel_D As Range
Dim F As Worksheet
'feuilles concernées se terminent par AM ou MP
'sortie si feuille non concernée
MsgBox ActiveSheet.Name
If Not Right(ActiveSheet.Name, 2) = "AM" And Not Right(ActiveSheet.Name, 2) = "MP" Then Exit Sub
'copie
If Intersect(Target, Range([c13], _
Cells(Range("A65536").End(xlUp).Row, Range("IV6").End(xlToLeft).Column))) _
Is Nothing Then GoTo Sort_Workbook_SheetChange
Application.EnableEvents = False
Application.ScreenUpdating = False
Plage_T = Intersect(Target, Range([c13], _
Cells(Range("A65536").End(xlUp).Row, _
Range("IV6").End(xlToLeft).Column))).Address(0, 0)
'n'agit que sur feuilles concernées (AM & MP)
For Each F In Worksheets
If Right(F.Name, 2) = "AM" Or Right(F.Name, 2) = "MP" Then
For Each Cel_D In F.Range(Plage_T)
For Each Cel_T In Target
If Cel_T.Address = Cel_D.Address Then
Cel_D = Cel_T
Exit For
End If
Next Cel_T
Next Cel_D
End If
Next F

Sort_Workbook_SheetChange:
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
Err_Workbook_SheetChange:
MsgBox (Err.Number & " - " & Err.Description)
Resume Sort_Workbook_SheetChange
End Sub
 

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Merci ERIC S ton code fonctionne parfaitement

Est 'il possible avec ton code de limiter la plage entre c13 et ge30 par exemple ou simplement une ligne entre c13 et ge13 uniquement ?


Merci pour tout
 

ERIC S

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

Re

le code est en grande partie celui de Gorfael

pour la plage, c'est

If Intersect(Target, Range([c13], _
Cells(Range("A65536").End(xlUp).Row, Range("IV6").End(xlToLeft).Column))) _
Is Nothing Then GoTo Sort_Workbook_SheetChange


Là je suis pressé
je regarde demain

re bonjour

donc les lignes ci-dessus vérifient si Target (la cellule active) se trouve dans la plage C13:cellule(dernière ligne colonneA, dernière colonne ligne 6

tu peux écrire:

If Intersect(Target, Range("c13:ge13")) _
Is Nothing Then GoTo Sort_Workbook_SheetChange

cela doit marcher
 
Dernière édition:

GBR

XLDnaute Junior
Re : Liaisons cellules prioritaires

Bonjour à tous

merci pour ta réponse, j'ai une autre question pratique et j'arrive à la fin de mes interogations. Peut on en cochant une case d'option au début de l'ouverture du programme avoir le fonctionnement de ton code pour les onglets se terminant par 1AM + 1MP puis quand on le désire (periode > 6 mois)basculer en cochant une deuxième case d'option pour avoir uniquement ton code sur les onglets se terminant par 2AM + 2MP ?

Merci encore..
 

ERIC S

XLDnaute Barbatruc
Re : Liaisons cellules prioritaires

re

1/ sur une feuille "Accueil" ou autre

en A1, données validation liste
premier semestre;second semestre

2/ pour ton code

au début

Dim semestre1 as string, semestre2 as string
semestre1="1AM"
semestre2="1MP"
if sheets("accueil").range("A1")="second semestre" then
semestre1="2AM"
semestre2="2MP"
end if


après là où tu avais

If Not Right(ActiveSheet.Name, 2) = "AM" And Not Right(ActiveSheet.Name, 2) = "MP" Then Exit Sub

If Right(F.Name, 2) = "AM" Or Right(F.Name, 2) = "MP" Then

il faut

If Not Right(ActiveSheet.Name, 3) = semestre1 And Not Right(ActiveSheet.Name, 3) = semestre2 Then Exit Sub

If Right(F.Name, 3) = semestre1 Or Right(F.Name, 3) = semestre2 Then
 

Discussions similaires

Réponses
84
Affichages
7 K

Statistiques des forums

Discussions
312 782
Messages
2 092 063
Membres
105 176
dernier inscrit
Arnaud.sam