On suppose que nous sommes positionnés sur A11. Certaines cellules de la plage ("A1:A10") sont vides.
J'aurai voulu savoir comment sélectionner la première cellule non vide en partant de A11 et en allant vers la gauche.
J'ai également besoin de sélectionner la deuxième cellule non vide.
Ça doit bien faire 30 min que je cherche et tente des choses sans succès.
Re : (VBA) Sélectionner la deuxième cellule non vide à gauche
Je suppose que tu as voulu dire "en allant vers le haut" à partir de A11, plutôt que "en allant vers la gauche".
VB:
Sub change_selection()
Dim c As Range
Set c = ActiveCell.Offset(-1)
Do While c = "" And c.Row > 1
Set c = c.Offset(-1)
Loop
If c.Row > 1 Then
Set d = c.Offset(-1)
Do While d = "" And d.Row > 1
Set d = d.Offset(-1)
Loop
End If
MsgBox "1ère cellule non vide : " & c.Address(0, 0) & Chr(10) & "2ème : " & IIf(d Is Nothing, "", IIf(d = "", "", d.Address(0, 0)))
End Sub
Re : (VBA) Sélectionner la deuxième cellule non vide à gauche
Oups ! Je dois être trop fatigué, vraiment désolé.
Je reprend.
On suppose que nous sommes positionnés sur K1. Certaines cellules de la plage ("A1:J1") sont vides.
J'aurai voulu savoir comment sélectionner la première cellule non vide en partant de K1 et en allant vers la gauche.
J'ai également besoin de sélectionner la deuxième cellule non vide.
Re : (VBA) Sélectionner la deuxième cellule non vide à gauche
donc, vers la gauche :
VB:
Sub change_selection()
Dim c As Range
Set c = ActiveCell.Offset(,-1)
Do While c = "" And c.column> 1
Set c = c.Offset(,-1)
Loop
If c.column> 1 Then
Set d = c.Offset(,-1)
Do While d = "" And d.column> 1
Set d = d.Offset(,-1)
Loop
End If
MsgBox "1ère cellule non vide : " & c.Address(0, 0) & Chr(10) & "2ème : " & IIf(d Is Nothing, "", IIf(d = "", "", d.Address(0, 0)))
End Sub
Re : (VBA) Sélectionner la deuxième cellule non vide à gauche
Bonjour à tous,
une autre approche, si j'ai bien compris le problème... pas sûr...
Code:
Option Explicit
Sub test()
Dim x As Range
With Range("A1:J1")
Set x = .Find("*", [A1], xlValues, , 2, 2, 0)
If Not x Is Nothing Then
Set x = .Find("*", x, xlValues, , 2, 2, 0)
If Not x Is Nothing Then MsgBox x.Address
End If
End With
End Sub