affecter 1 macro à 1 cellule+ recopier vers le bas

S

steve

Guest
bonjour
je voudrai quand je clique dans la feuille 1 sur la cellule B8 que par une macro je me retrouve sur la feuille 2 avec la cellule C3 de selectionnée. Et que je puisse ensuite recopier vers le bas pour avoir le meme effet sur les autres cellules de la meme colonne. Merci de votre aide.
 

Shining Hawk

XLDnaute Junior
essaye de mettre ca sur le code de la feuille Feuil1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Si on sélectionne la case B8
If Target.Address = '$B$8' Then
Sheets('Feuil2').Select
Sheets('Feuil2').Range('C3').Select
End If

' Si on choisit une cellule de la colonne B
If Target.Column = 2 Then
Sheets('Feuil2').Select
Sheets('Feuil2').Range('C3').Select
End If
End Sub
 

2passage

XLDnaute Impliqué
Re:affecter 1 macro à 1 cellule+ recopier vers le

Bonjour,

Oui, ou alors, si la selection à la fin doit décaler (C3, C4,C5...) :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.Intersect(Target, Range('B8:B65536')) Is Nothing Then Exit Sub
If Target.Row > 8 Then
    Worksheets('feuil2').Activate
    Worksheets('feuil2').Range('C3').Offset(Target.Row - 8, 0).Select
End If
End Sub

(fonctionne de B8 au bas de la colonne B )

A+

Edit: un détail : le If target.row > 8 ne sert a rien tant que le range de l'intersect ne contient pas de ligne < à 8.

Message édité par: 2passage, à: 16/08/2005 16:48
 
S

steve

Guest
ok c marche ! merci

par contre je pensais pouvoir recopier cette macro pour faire la meme chose avec mes autres colonnes mais la rien ne se passe.... deuxieme point ; est il possible de ne pas renvoyer dans le meme n° de colonne dans la feuille 2. merci d'avance pour toutes ces question steve.
 

2passage

XLDnaute Impliqué
Re:affecter 1 macro à 1 cellule+ recopier vers le

Bonjour,

En fait, la clé se trouve dans cette ligne :

Sheets('Feuil2').Range(Target.Address).Offset(-5, 1).Select

en clair, Target.address est la cellule sur laquelle tu cliques (oui, dans la feuille 1). On cible une autre feuille avec le Sheets('Feuill2'). On utilise un décallage par rapport à cette adresse pour cibler la bonne cellule : c'est le offset(-5,1) qui signifie 5 ligne plus haut et 1 colonne plus à droite. En modifiant ces nombre, tu cible la colonne que tu souhaites.

Par contre il faudra surement modifier la structure de la macro et modifier le
If Application.Intersect(Target, Range('B8:B65536')) Is Nothing Then Exit Sub
Ca donnera surement quelquechose du genre :

If not Application.Intersect(Target, Range('B8:B65536')) Is Nothing Then
Code pour la colonne B
else If not Application.Intersect(Target, Range('C8:C65536')) Is Nothing then
Code pour colonne C
...
etc...
end if
Exit Sub

A+

Message édité par: 2passage, à: 17/08/2005 09:56
 
S

steve

Guest
Re:affecter 1 macro à 1 cellule+ recopier vers le

merci pour t explications mais je ne connais pas tro la programmation alors j'ai quand meme essayé de replacer les lignes que tu m'as donne mais ca marche pas..... les ligne else if not......sont ecrite en rouge dans vba... si tu peux me remarquer le code en entier ca serait vraiment cool ;) merci d'avance steve.
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11