Sélection de cellule en fonction de l'emplacement d'une autre

  • Initiateur de la discussion Initiateur de la discussion Excel_forever
  • 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 !

E

Excel_forever

Guest
Bonjour,

Je cherche actuellement à coder une macro sur Excel.

Une étape de cette macro consiste à soustraire le contenu d'une cellule par la valeur de sa cellule adjacente.

Ensuite, si le résultat est >0 je continue avec la cellule du dessous.
Dans le cas contraire, je devrais savoir le coder...

Pour l'instant, j'ai fait une variable qui contient la valeur de la cellule cible afin de pouvoir soustraire.

En gros, je prend la valeur de B2 je veux enlever C2
puis C3
...
Jusqu'à ce que ce soit <0

Etant donné que je devrais faire une boucle pour toutes les cellules de la colonne B, il serait bon de pouvoir avoir les coordonnées de B2 en fonction de "i"

J'espère être assez clair, merci de votre aide.
 
Re : Sélection de cellule en fonction de l'emplacement d'une autre

Bonjour,

regarde le code ci-dessous si il peut t'aider, à noter qu'il y a peut être lieu de tester si les cellules sont numériques...

Code:
Option Explicit
Sub test()
Dim i As Long
For i = 2 To Range("B65536").End(xlUp).Row
    Cells(i, 2).Value = Cells(i, 2).Value - Cells(i, 3).Value
Next i
End Sub

A voir si j'ai bien compris.... pas sûr...

bon après midi
@+
 
Re : Sélection de cellule en fonction de l'emplacement d'une autre

Bonjour Excel_forever, Pierrot93,
Comme Excel_forever parle de
En gros, je prend la valeur de B2 je veux enlever C2
puis C3
Je propose une double boucle (qui risque d'être longue si les lignes se comptes par milliers).
Code:
Sub test()
Dim Derligne As Long
Dim Dercol As Long
Dercol = Range("IV2").End(xlToLeft).Column
Derligne = Range("B" & Application.Rows.Count).End(xlUp).Row
For i = 2 To Derligne
    For j = 1 To Dercol
        Cells(i, j).Activate ' c'est juste pour montrer l'utilisation des i et j
    ' le compteur
    Xext j
    'Compteur a réinitialiser
Next i
End Sub
Cordialement
 
Re : Sélection de cellule en fonction de l'emplacement d'une autre

Salut Excel_forever et le forum
Pas sûr de comprendre : Tu veux faire quoi exactement ?
Pour B2 on commence à C2, pour B3, on commence à C3, etc
Code:
Sub test()
Dim Cel As Range, X As Integer
For Each Cel In Range([B2], Cells(Rows.Count, "B").End(xlUp))
    For X = 0 To Cells(Rows.Count, "C").End(xlUp)
        If Cel > 0 Then
            Cel = Cel - Cel.Offset(X, 1)
        Else
            Exit For
        End If
    Next X
Next Cel
End Sub
Maiscomme je ne comprends pas la finalité de la macro, je ne peux aider réellement.

Quand on demande de l'aide, on refile les données et le but. On peut indiquer la manière, mais avec le but, on pourrait peut-être t'indiquer une autre méthode pour parvenir au résultat souhaité.
A+
 
- 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
17
Affichages
568
Retour