Stocker une adresse de cellule dans une variable

jbballeyguier

XLDnaute Nouveau
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 !
 

RENAUDER

Nous a quitté
Repose en paix
Re : Stocker une adresse de cellule dans une variable

Bonjour,
Pourquoi pas cela
Code:
    Range([C1], [C65536].End(xlUp)).Select
    Total = Application.Sum(Selection)
    Range("C65536").End(xlUp).Offset(1, 0).Select
    ActiveCell.Value = Total
 
G

Guest

Guest
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+
 

Catrice

XLDnaute Barbatruc
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
 

jbballeyguier

XLDnaute Nouveau
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 ?
 
G

Guest

Guest
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.
 

Discussions similaires

Réponses
3
Affichages
303

Statistiques des forums

Discussions
312 333
Messages
2 087 370
Membres
103 528
dernier inscrit
maro