|
|
|
|
Bonjour,
J'ai un tableau A1 : V 3212 , faisant appel à de nombreuses variables, pour émettre différentes hypothèses
prévisionnelles possible. Pour mener à bien ce choix , ce tableau est doté d'un filtre automatique.
L'opérateur choisit en fonction des contraintes quotidiennes , en agissant sur les variables et retenant le scénario qui lui conviens.
Mon problème : je voudrai renvoyer le scénario retenu parmis les 3212, sur un autre fichier pour faire un bilan ( les différents scénarios devant s'afficher les uns à la suite des autres) ; Si je retiens un scénario et que je construit ma macro à chaque fois en fonction du numéro de ligne retenu, ça n'a pas d'intéret. Comment faire pour que le scénario retenu par filtre soit renvoyé automatiquement et juste celui ci??
MERCI 0 TOUS
Configuration: Windows 2000 Internet Explorer 6.0
Il faudrait que tu nous en montre un peu plus sur le format du tableau.
|
Repete moi ta procedure. Mais en t'appuyant sur un example concret pour que je comprenne bien.
|
Deroulement general : on va creer des liens hypertext dans toutes les cellules du tableau qui vont lancer une fonction qui copie la ligne sur laquelle on a clique.
|
2) Tu selectionne tout le tableau (normalement A13:Q3212)
|
3) Tu vas dans l'editeur Visual Basic (Alt+F11)
Option Explicit Tu efface tout et tu remplace par : Dim CurRow1 As Long, CurRow2 As Long
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
CurRow2 = CurRow1
CurRow1 = Target.Row
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim i As Long
Cells(CurRow2, 1).Select
Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1))
For j = 1 To 17
Feuil2.Cells(i, j) = Cells(CurRow1, j + 1)
Next
End Sub
Je t'expliquerais ce que ca veut dire plus tard. Tu me dis quand c'est bon Il y a 10 types de personnes dans le monde Ceux qui comprennent le binaire et les autres. |
STOP ! Y'a une erreur de syntaxe
Dim CurRow1 As Long, CurRow2 As Long
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
CurRow2 = CurRow1
CurRow1 = Target.Row
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim i As Long
Cells(CurRow2, 1).Select
Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1))
For j = 1 To 17
Feuil2.Cells(i, j) = Cells(CurRow1, j)
Next
End Sub
Il y a 10 types de personnes dans le monde Ceux qui comprennent le binaire et les autres. |
Aller, j'ai mieux encore :
Dim CurCell1 As Range, CurCell2 As Range
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Set CurCell2 = CurCell1
Set CurCell1 = Target
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim i As Long
CurCell2.Select
Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1))
For j = 1 To 17
Feuil2.Cells(i, j) = Cells(CurCell1.Row, j)
Next
End Sub
J'attend que tu confirme que tu as bien applique la 3e version. Il y a 10 types de personnes dans le monde Ceux qui comprennent le binaire et les autres. |
De nada.
|
Quelques pistes pour comprendre le code :
|
Effectivement, grace a eric, nous pouvons proposer une transformation tres simple.
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim i As Long
Cancel = True
Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1))
For j = 1 To 17
Feuil2.Cells(i, j) = Cells(Target.Row, j)
Next
MsgBox "La sélection a bien été ajoutée.", vbInformation
End Sub
3) C'est tout ! Un double clic n'importe ou sur une ligne provoquera son ajout dans la Feuil2. Il y a 10 types de personnes dans le monde Ceux qui comprennent le binaire et les autres. |