Macro formule jusqu'à la dernière cellule non vide

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

romdurk

XLDnaute Nouveau
Bonjour,

J'ai parcouru le forum sans pouvoir trouver réponse à ma question. Bref, dans la colonne B, j'ai des Avoirs et Factures. En colonne C, le montant HT.

Je souhaiterais avoir une macro qui réalise cette démarche:

1- Je mets des filtres en ligne 2.

2- Je selectionne uniquement les avoirs

3- Je transforme les montants (colonne C) en négatif (j'aimerais avoir les montants des avoirs en négatif).

L'idée étant de rendre la démarche automatique: il faut donc trouver une macro qui séléctionne automatiquement la première ligne visible après filtre, jusqu'à la dernière visible. (chaque mois, ça change!)

JE vous remercie par avance pour votre aide!
 

Pièces jointes

Bonjour,
A tester ce code à mettre dans un module

Code:
Sub Test()

Dim F1 As Range
Dim i As Integer
Dim DernLigne As Long

    DernLigne = Range("b" & Rows.Count).End(xlUp).Row
    Set F1 = Sheets("Feuil1").Range("b2:b" & DernLigne)
        Range("B2:C2").Select
        Selection.AutoFilter
        ActiveSheet.Range("B2:B" & DernLigne).AutoFilter Field:=1, Criteria1:="Avoir"
        Range("B3").Select
       
            For i = 2 To F1.Rows.Count
                If F1(i, 1).Value = "Avoir" And F1(i, 2).Value > 0 Then
                    F1(i, 2).Value = F1(i, 2).Value * -1
                End If
            Next i
End Sub
 
Mille Merci!

Cependant, j'aurais une dernière petite remarque à faire (que je pense trivial pour vous...)

La macro est applicable pour les montants colonne C. Pourrais-je avoir SVP la macro pour les montants en colonne I? (la colonne facture/avoir restant en colonne B)

Merci!
 
Re,

Remplace
Code:
For i = 2 To F1.Rows.Count
                If F1(i, 1).Value = "Avoir" And F1(i, 2).Value > 0 Then
                    F1(i, 2).Value = F1(i, 2).Value * -1
                End If
            Next i
par

Code:
For i = 2 To F1.Rows.Count
                If F1(i, 1).Value = "Avoir" And F1(i, 8).Value > 0 Then
                    F1(i, 8).Value = F1(i, 8).Value * -1
                End If
            Next i
 
- 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

Discussions similaires

Réponses
8
Affichages
466
Retour