Stocker une adresse de cellule dans une variable

  • Initiateur de la discussion Initiateur de la discussion jbballeyguier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jbballeyguier

Guest
Bonjour,

je souhaiterai savoir comment stocker une adresse de cellule dans une variable, que je renverrai dans un Range.
La macro suivante, est censée se positionner en C1, puis descendre jusqu'à la première cellule vide, et créer un SOMME des cellules précédentes dans cette cellule :

Code:
Sub essai4()
    Dim ligne As Integer
    Dim adresse As String
    Set ligne = 1
    Set adresse = ActiveCell.Offset(-1, 0).Address
    
    Range("C1").Select
    Do While ActiveCell.Offset(1, 0) <> ""
        ActiveCell.Offset(ligne, 0).Select
        ligne = ligne + 1
    Loop
        MsgBox adresse
        ActiveCell.Formula = "=SOMME($C$1:adresse)"
End Sub

Je sens qu'il me manque pas grand chose... enfin je crois ^^
Si quelqu'un a une idée 😉

Merci d'avance !
 
Re : Stocker une adresse de cellule dans une variable

Bonjour Jb, Eric

Puisque je l'ai fait:

En partant du haut vers le bas
Code:
Sub Essai5()
    Dim c As Range
    With Sheets("Feuil1")
        'Trouver la dernière cellule remplie
        Set c = .Range("C1").End(xlDown)
        'Si c'est au plus l'avant dernière cellule de la colonne
        If c.Row <= .Rows.Count - 1 Then
            'Se positionner sur la cellule de la ligne suivante
            Set c = c.Offset(1)
            'Mettre la formule
            c.FormulaLocal = "=SOMME($C$1:$C$" & c.Offset(-1).Row & ")"
        End If
    End With
End Sub

En partant du bas de la colonne vers le haut
Code:
Sub Essai6()
    Dim c As Range
    With Sheets("Feuil1")
        'Trouver la dernière cellule remplie
        Set c = .Range("C" & .Rows.Count).End(xlUp)
        'Si c'est au moins la troisième cellule
        If c.Row >= 3 Then
            'Se positionner sur la cellule de la ligne suivante
            Set c = c.Offset(1)
            'Mettre la formule
            c.FormulaLocal = "=SOMME($C$1:$C$" & c.Offset(-1).Row & ")"
        End If
    End With
End Sub

A+
 
Re : Stocker une adresse de cellule dans une variable

Bonjour à tous,

Pour ne pas faire de Select ...

Sans formule
Sub test2()
[C65536].End(xlUp).Offset(1, 0) = Application.Sum(Range([C1], [C65536].End(xlUp)))
End Sub

Avec formule
Sub test3()
[C65536].End(xlUp).Offset(1, 0).Formula = "=SUM(" & Range([C1], [C65536].End(xlUp)).Address & ")"
End Sub
 
Re : Stocker une adresse de cellule dans une variable

Merci à tous... je commence à m'y retrouver un peu mieux.
La macro de Hasco m'a permi d'obtenir ce que je cherchais... je vais tester celle de Catrice pour voir 😉

Cependant, quelqu'un pourrait m'expliquer exactement ce que font xlUp et xlDown ? Je le vois dans pas mal de macro, et je ne situe pas exactement leur fonction : est-ce que cela permet de "scanner" les cellules ?
 
Re : Stocker une adresse de cellule dans une variable

Re bonjour JB

End(XlUp) équivaut, sur une feuille de calcul à faire CTRL+flèche haute
End(XlDown) '''''............................................... CTRL+flèche basse

A bientôt pour de nouvelles aventures.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
401
Retour