Sélection jusqu'à la prochaine cellule non vide

Fermé
Débutante - 28 oct. 2015 à 10:19
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 28 oct. 2015 à 14:21
Bonjour,

Je débute en VBA et je bloque pour une formule.

ActiveCell.FormulaR1C1 = "=RC[-1]/(R[-5]C[-1]:R[-1]C[-1])"

Je pars de la cellule active et je souhaite que la cellule à gauche de ma cellule active soit divisée par la plage suivante :
De la cellule au dessus de « RC[-1] » jusqu'à la prochaine cellule non vide

Lorsque je le fait manuellement en enregistrant une macro, il me sélectionne la plage de cellule.

Mais ce que j'aimerais c'est introduire ce code la :
Range(Selection, Selection.End(xlUp)).Select

Mais je ne vois pas comment faire.

Merci
A voir également:

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 oct. 2015 à 12:07
Bonjour
"jusqu'à la prochaine cellule non vide" en remontant si j'ai bien compris.
    For i = ActiveCell.Row - 1 To 1 Step -1
        If Cells(i, ActiveCell.Column - 1) = "" Then
            DerLig = i + 1
            ActiveCell.FormulaR1C1 = "=RC[-1]/SUM(R" & DerLig & "C[-1]:R[-1]C[-1])"
            Exit Sub
         End If
    Next i

A tester
Cdlt
0
C'est tout à fait ça ! Merci beaucoup pour votre réponse si rapide!

Motivé par tout ça, j'ai essayé d'aller plus loin, en me disant :

On applique cette formule dans la colonne C, dès que l'on voit dans une cellule de la colonne B le mot "total".
J'ai donc essayé le chose suivante :

Sub Macro1()
'
' Macro1 Macro
'

For i = ActiveCell.Row - 1 To 1 Step -1
        If Cells(i, ActiveCell.Column - 1) = "" Then
            DerLig = i + 1
            Range("C:C").FormulaR1C1 = "=IF(LEFT(RC[-2],5)=""Total"",RC[-1]/SUM(R" & DerLig & "C[-1]:R[-1]C[-1]),20"
            Exit Sub
         End If
    Next i

'
End Sub


Mais cela ne fonctionne pas.
Voyez-vous le point bloquant ?
0