Copié coller de la première cellule FILTREE

Fermé
Hope68fr Messages postés 4 Date d'inscription mercredi 15 février 2017 Statut Membre Dernière intervention 19 mai 2017 - 16 mai 2017 à 14:08
Hope68fr Messages postés 4 Date d'inscription mercredi 15 février 2017 Statut Membre Dernière intervention 19 mai 2017 - 19 mai 2017 à 09:09
Bonjour,

Je dispose d'un code tel que :

Sub test()
Dim i As Integer 'variable pour la boucle
Dim s As String 'variable pour stocker la dernière valeur connue
'Un exemple de boucle, cela dépends entièrement de votre besoin de travail
'Par exemple, si vous voulez mettre un "FIN" dans une cellule et que vous voulez vous arreter la, ça serait
'i = 1
'while Activesheet.Cells(i,1).value <> "FIN"
' Code...
' i = i + 1
'Wend
For i = 2 To 1000
'Si la cellule n'est pas vide, on stocke la valeur de cette cellule
If (ActiveSheet.Cells(i, 1).Value <> "") Then
s = ActiveSheet.Cells(i, 1).Value

'Si la cellule est vide, on mets la valeur stockée dans la cellule
Else
ActiveSheet.Cells(i, 1).Value = s
End If
Next i
End Sub


Le but de ce code est de copié la valeur A1=3 et de la copié jusqu'à AX jusqu'à qu'il rencontre un autre A1245 =147 et la copie jusqu'à AY et ainsi de suite.

Je souhaiterais adapté ce code ou en faire un autre pour que celui-ci soit appliqué aux cellules filtrées uniquement et donc visible.

De facto, un autre problème est que ce code présente i =2 to 1000. Hors, lorsque je filtre j'aurais la ligne par exemple 4256 jusqu'à 5658 puis de 10000 jusqu'à 12000 à laquelle je dois attribuer ce code donc il faudrait que ce code soit adapté aux cellules visibles qui ont été filtré.

Merci pour votre aide ! :)

Bonne journée !
A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
19 mai 2017 à 08:04
Bonjour,

Le filtre serait applique (si filtre doit y avoir) sur quelle colonne?
0
Hope68fr Messages postés 4 Date d'inscription mercredi 15 février 2017 Statut Membre Dernière intervention 19 mai 2017
19 mai 2017 à 09:09
Salut,

la réponse a été trouvé. Merci quand même.

Ci-joint le code pour ceux qui en auraient besoin.

a+

Option Explicit

Dim i&, s

Sub test()

For i = 2 To Range("B" & Rows.Count).End(xlUp).Row

If (ActiveSheet.Cells(i, 1).Value <> "") _
And Rows(i & ":" & i).EntireRow.Hidden = False Then
'Si lacellule n'est pas vide et ni masquée :
s = ActiveSheet.Cells(i, 1).Value

ElseIf ActiveSheet.Cells(i, 1).Value = "" _
And Rows(i & ":" & i).EntireRow.Hidden = False Then
'Si la cellule est vide et non masquée :
ActiveSheet.Cells(i, 1).Value = s
End If
Next i
End Sub
0