hypertexte et cellules correspondantes(modif)

  • Initiateur de la discussion lolo
  • Date de début
L

lolo

Guest
j'ai mis des signets!
et je voudrais traduire en vba:
prendre LC(-3) de la cellule active et que LC(-3)=a10
prendre LC(-2) de la cellule active et que LC(-2)=b10
prendre LC(-1) de la cellule active et que LC(-1)=c10
prendre LC de la cellule active et que LC=d10
 

Pièces jointes

  • lolomodif.zip
    9.6 KB · Affichages: 28
L

lolo

Guest
j'imagine que cela doit etre quelque chose comme ça mais:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("$Lx$C4").Select Then
Range("L10C1") = Range(LxC1).Value
If Range("$Lx$C4").Select Then
Range("L10C2") = Range(LxC2).Value
If Range("$Lx$C4").Select Then
Range("L10C3") = Range(LxC3).Value
If Range("$Lx$C4").Select Then
Range("L10C4") = Range(LxC4).Value
End If
End If
End If
End If
End Sub


x etant une variable
merci d'avance
a+ lolo
 
S

steplof

Guest
Salut lolo

tu peux par exemple mettre ce code dans le private module feuil1 de ton classeur base,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 4 Then
Select Case Target.Row
Case 1 To 4
Workbooks("visualisation.xls").Sheets(1).Range("a10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 1).Value
Workbooks("visualisation.xls").Sheets(1).Range("b10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 2).Value
Workbooks("visualisation.xls").Sheets(1).Range("c10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 3).Value
Workbooks("visualisation.xls").Sheets(1).Range("d10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 4).Value

End Select
End If
Workbooks("visualisation.xls").Activate
End Sub

Bon il faudrait prévoir un test pour être sur que ton claseur visualisation est ouvert sinon la macro plantera mais je crois que ça respecte ce que tu demandes..

En espérant t'avoir aidé.
Steplof
 
S

steplof

Guest
Re

forcément si tu décales les cellules ça marche plus...
en Français la macro que je t'ai proposée dit ceci

Quand la sélection change dans la feuille1 (Target est le nom de la cellule qui est cliquée)

Si la colonne de la cellule est 4 (colonneD)
alors

dans le cas où la ligne est 1,2,3 ou 4

Classeur visualisation celluleA10= classeur base cellule( lignetarget (donc1,2,3 ou 4 selon le lien sur lequel tu as cliqué),colonneA)

Classeur visualisation celluleB10= classeur base cellule( lignetarget (donc1,2,3 ou 4 selon le lien sur lequel tu as cliqué),colonneB)

etc

Si tu décales les plages,
soit il faut adapter les valeurs de la macro (pas trop difficile)

soit c'est un décalage permanent (ta plage de visualisation n'est jamais au même endroit et tu peux avoir plus de 4 lignes dans ta feuille base... dans
ce cas il faut rendre la macro dynamique:

1 tester quelle est la dernière ligne écrite dans ton classeur base
2 nommer chaque cellule de ta plage de visualisation
a10, b10, c10, d10 dans ta version initiale

ainsi ça devrait marcher...


Vois si ça peut t'aider,

je reviens...

@+
Steplof
 
S

steplof

Guest
Me revoilà,

bon ton module doit donner ça,

j'ai préalablement nommé celluleA10, celluleB10, celluleC10,celluleD10 les cellules correpondant à A10, B10, c10 D10 de la version de ton classeur.

Une fois nommées, tu peux déplacer tes cellules ou tu veux dans le classeur base, leur valeur sera toujours ok.

tu peux saisir dans ton classeur base autant de lignes que tu veux, lorsque tu cliqueras sur ton lien en D, les avleurs apparitront dans ta feuille visualisation dans les cellules nommées...


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim DernLigneBase As Long

If Target.Column = 4 Then 'si tes liens sont pas en colonne D met ici le N° correspondant à ta colonne
DernLigneBase = Workbooks("base.xls").Sheets(1).Range("D65536").End(xlUp).Row ' détermine la dernière ligne utilisée dans ta feuille base

Select Case Target.Row
Case 1 To DernLigneBase
Workbooks("visualisation.xls").Sheets(1).Range("celluleA10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 1).Value ' ici aussi tu dois changer le 1,2,3,4 qui correspondent à la colonne
Workbooks("visualisation.xls").Sheets(1).Range("celluleB10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 2).Value ' si les valeurs que tu veux retrouver dans ton classeur visualisation sont dans
Workbooks("visualisation.xls").Sheets(1).Range("celluleC10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 3).Value ' d'autres colonnes.
Workbooks("visualisation.xls").Sheets(1).Range("celluleD10").Value = Workbooks("base.xls").Sheets(1).Cells(Target.Row, 4).Value '

End Select
Workbooks("visualisation.xls").Activate
End If
End Sub



J'espère avoir compris ton prob, et que ça t'aidera un peu, à bientôt pour d'autres aménagements

Steplof.
 

Discussions similaires

Réponses
3
Affichages
296
Réponses
8
Affichages
506

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko