Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client
suivant ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client
suivant ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client
suivant ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
eojewmr4JHA.4932@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
bonjour Jac,
'selectionne la premiere ligne visible
PremiereLigneFiltre = Range("A2",
"A65535").SpecialCells(xlCellTypeVisible).Row
Range("A" & PremiereLigneFiltre).Select
'selectionne la deuxième ligne visible
SendKeys "{DOWN}", True
isabelle
Jac a écrit :Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu d'une
ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se suivent
pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant ou
précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la 14
(ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le numéro
de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
bonjour Jac,
'selectionne la premiere ligne visible
PremiereLigneFiltre = Range("A2",
"A65535").SpecialCells(xlCellTypeVisible).Row
Range("A" & PremiereLigneFiltre).Select
'selectionne la deuxième ligne visible
SendKeys "{DOWN}", True
isabelle
Jac a écrit :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu d'une
ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se suivent
pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant ou
précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la 14
(ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le numéro
de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
bonjour Jac,
'selectionne la premiere ligne visible
PremiereLigneFiltre = Range("A2",
"A65535").SpecialCells(xlCellTypeVisible).Row
Range("A" & PremiereLigneFiltre).Select
'selectionne la deuxième ligne visible
SendKeys "{DOWN}", True
isabelle
Jac a écrit :Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu d'une
ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se suivent
pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant ou
précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la 14
(ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le numéro
de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
eojewmr4JHA.4932@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
OQmi4Os4JHA.4184@TK2MSFTNGP02.phx.gbl...
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
eojewmr4JHA.4932@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
OQmi4Os4JHA.4184@TK2MSFTNGP02.phx.gbl...
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
eojewmr4JHA.4932@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
C'est quoi ta
question???????????????????????????????????????????????????????????????????
"Jac" a écrit dans le message de groupe de discussion :
#
… je suis désolé, mais avec ta première solution, je ne suis pas arrivé
à obtenir ce que je voulais. Maintenant, ça fonctionne, mais c'est pas
tout à fait ce qu'il me faut : je ne sais pas quel n° d'enregistrement
je recherche (Nb = ?) , mais je veux le premier visible après la ligne
15, par exemple, donc le 16, le 20 ou le 39, bref le suivant, ou le
précédent.
MichDenis a écrit :Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
C'est quoi ta
question???????????????????????????????????????????????????????????????????
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
#7DFz7t4JHA.5048@TK2MSFTNGP03.phx.gbl...
… je suis désolé, mais avec ta première solution, je ne suis pas arrivé
à obtenir ce que je voulais. Maintenant, ça fonctionne, mais c'est pas
tout à fait ce qu'il me faut : je ne sais pas quel n° d'enregistrement
je recherche (Nb = ?) , mais je veux le premier visible après la ligne
15, par exemple, donc le 16, le 20 ou le 39, bref le suivant, ou le
précédent.
MichDenis a écrit :
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
OQmi4Os4JHA.4184@TK2MSFTNGP02.phx.gbl...
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
eojewmr4JHA.4932@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
C'est quoi ta
question???????????????????????????????????????????????????????????????????
"Jac" a écrit dans le message de groupe de discussion :
#
… je suis désolé, mais avec ta première solution, je ne suis pas arrivé
à obtenir ce que je voulais. Maintenant, ça fonctionne, mais c'est pas
tout à fait ce qu'il me faut : je ne sais pas quel n° d'enregistrement
je recherche (Nb = ?) , mais je veux le premier visible après la ligne
15, par exemple, donc le 16, le 20 ou le 39, bref le suivant, ou le
précédent.
MichDenis a écrit :Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Ligne suivante d'un tableau filtré
MichDenis avait prétendu :C'est quoi ta
question???????????????????????????????????????????????????????????????????
"Jac" a écrit dans le message de groupe de discussion :
#
… je suis désolé, mais avec ta première solution, je ne suis pas arrivé
à obtenir ce que je voulais. Maintenant, ça fonctionne, mais c'est pas
tout à fait ce qu'il me faut : je ne sais pas quel n° d'enregistrement
je recherche (Nb = ?) , mais je veux le premier visible après la ligne
15, par exemple, donc le 16, le 20 ou le 39, bref le suivant, ou le
précédent.
MichDenis a écrit :Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de
ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion
:
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Ligne suivante d'un tableau filtré
MichDenis avait prétendu :
C'est quoi ta
question???????????????????????????????????????????????????????????????????
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
#7DFz7t4JHA.5048@TK2MSFTNGP03.phx.gbl...
… je suis désolé, mais avec ta première solution, je ne suis pas arrivé
à obtenir ce que je voulais. Maintenant, ça fonctionne, mais c'est pas
tout à fait ce qu'il me faut : je ne sais pas quel n° d'enregistrement
je recherche (Nb = ?) , mais je veux le premier visible après la ligne
15, par exemple, donc le 16, le 20 ou le 39, bref le suivant, ou le
précédent.
MichDenis a écrit :
Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de
ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion :
OQmi4Os4JHA.4184@TK2MSFTNGP02.phx.gbl...
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :
Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" <jsansp@amfra.net> a écrit dans le message de groupe de discussion
:
eojewmr4JHA.4932@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac
Ligne suivante d'un tableau filtré
MichDenis avait prétendu :C'est quoi ta
question???????????????????????????????????????????????????????????????????
"Jac" a écrit dans le message de groupe de discussion :
#
… je suis désolé, mais avec ta première solution, je ne suis pas arrivé
à obtenir ce que je voulais. Maintenant, ça fonctionne, mais c'est pas
tout à fait ce qu'il me faut : je ne sais pas quel n° d'enregistrement
je recherche (Nb = ?) , mais je veux le premier visible après la ligne
15, par exemple, donc le 16, le 20 ou le 39, bref le suivant, ou le
précédent.
MichDenis a écrit :Bonjour Jac,
Tu recherches des solutions copier-coller. Il faut faire quand même un
minimum d'efforts pour comprendre les procédures proposées. À partir de
ma
première proposition, tu aurais pu conclure à ceci :
Tu dois adapter le nom de la feuille (propriété Name)
'---------------------------------------
Sub test()
Dim Rg As Range, R As Range
Dim X As Long, Nb As Long
'Déterminer la ligne de quel enregistrement
'vous désirez obtenir.
'*********************
Nb = 2
'*********************
With Feuil1
If .FilterMode = True Then
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1) _
.Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
'Choisir une autre colonne que A si nécessaire
X = Application.Subtotal(3, .Range("A:A")) - 1
If X < Nb Then
MsgBox "Il n'y a que " & X & " enregistrement(s)."
Exit Sub
End If
For Each R In Rg.Rows
A = A + 1
If A = Nb Then MsgBox R.Row: Exit For
Next
Else
MsgBox "Il n'y a aucun filtre en application."
End If
End With
End Sub
'---------------------------------------
"Jac" a écrit dans le message de groupe de discussion :
Bonjour MichDenis,
merci de te pencher sur mon problème. Je reviens sur ma problématique
non résolue pour le moment par ta solution.
La table est filtrée. J'affiche actuellement dans mon formulaire les
données de la ligne 15. La ligne visible suivante porte le n° 20. Et ce
que j'ai besoin d'obtenir, c'est la valeur 20 ou le contenu de la
cellule A20 qui me permettra de retrouver par une recherche le n° de
ligne correspondant.
MichDenis a couché sur son écran :Bonjour Jac,
Dans la procédure suivante, tu n'as qu'à renseigner
la variable NB avec le numéro de la ligne de
l'enregistrement à trouver.
Exemple : 3 ième enregistrement : Nb = 3
Évidemment, le nom de la feuille, la plage de cellules
sont à renseigner selon ton application.
'--------------------------------------
Sub Denis()
Dim Rg As Range
Dim A As Long
Dim Nb As Long
'****************************************
Nb = 2 'nombre de lignes du filtre à copier
'****************************************
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For Each r In Rg.Rows
A = A + 1
'Pour copier la ligne filtrée sur une autre feuille
'r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then MsgBox r.Row: Exit For
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'--------------------------------------
"Jac" a écrit dans le message de groupe de discussion
:
Bonjour à tous,
je me base sur les données d'un tableau pour afficher dans une autre
feuille les données d'une ligne du tableau (1 ligne = 1 client) en
plusieurs colonnes. Donc j'obtiens 4 colonnes de 30 lignes au lieu
d'une ligne de 120 colonnes. Ça occupe mieux l'écran ou la feuille
imprimée…
Mais la source est un tableau filtré, donc les n° de ligne ne se
suivent pas forcément. Normal.
Connaissant le numéro de la ligne du client affiché, j'ai besoin de
connaiître le n° suivant ou précédent afin d'afficher le client suivant
ou précédent.
Et c'est là que le bas blesse... La ligne 15, actuellement affichée en
fiche, est suivie par la ligne 20 (ou 25) et elle est précédée par la
14 (ou la 13 ou la 8...) et en vba, je ne vois pas comment calculer le
numéro de la ligne recherchée.
Merci d'avance à qui pourrait me mettre sur la voie.
Jac