Condition Macro VBA

Bonsoir,

Je souhaite faire une condition VBA par macro sur deux colonne. "A et B"

La condition est Si la cellule précédente est supérieur à la cellule d'en dessous, alors supprimer tout les cellules de la colonne A à partir de la cellule qui est inférieur.

Appliquer la même condition sur la colonne B.

Petit exemple :

1

2

3

4

1

1 est inférieur à 4 Donc on va supprimer "1,80,90,100"

80

90

100

Voici le code VBA qui j'ai testé mais cela ne fonctionne pas car Cell n'est pas valide, vous en pensez quoi ?

Sub Delcroissance_A_B()
Dim i As Integer, DerLig As Integer, DerLig_A As Integer, DerLig_B As Integer

DerLig = Range("A" & Rows.Count).End(xlUp).Row

With Sheets("Feuil3")
For i = 1 To DerLig
'If case = Si Cellule infèrieur à la cellule précédente alors supprimer les autres valeurs dans la colonne A à partir de la cellule ou la condition est TRUE (vrai)
'sinon prochaine cellule vers le bas'
IfCase (DerLig < Cell)
.Range("Cell+DerLig_A" & Rows.Count).ClearContents
Next i
 .Activate

 'Pareil pour colonne B'
 IfCase (DerLig < Cell)
.Range("Cell+DerLig_B" & Rows.Count).ClearContents
Next i
 .Activate

End Sub 

Merci d'avance,

Bonne soirée

Bonsoir,

Bé oui ! Cell, variable non déclarée et non initialisée...

plus : "Cell+Derlig_A" (ouB) est simplement une aberration !

que derlig_A et _B sont des variables inutiles, jamais initialisées d'ailleurs,

qu'il y a 2 Activate de trop ! (au moins un si tu n'est pas sur la feuille au lancement, et qu'il faut l'afficher à l'utilisateur (mais seulement à la fin)

et si tu es déjà sur la feuille, il faut inhiber la mise à jour de l'affichage.

Range sans point devant !

j'en oublie peut-être...

Et code non indenté, ce que vraiment je n'apprécie pas, pas du tout !

Bonjour

Tu devrais donner ton exemple sur la feuille de calcul, en montrant ce que tu attends...

Bye !

Re,

Sub Delcroissance_A_B()
    Dim i As Integer, k As Integer, DerLig As Integer
    Application.ScreenUpdating = False
    With Sheets("Feuil3")
        DerLig = .Columns("A:B").SpecialCells(xlCellTypeLastCell).Row
        For k = 1 To 2
            i = 3
            Do
                If .Cells(i, k) < .Cells(i - 1, k) Then Exit Do
                i = i + 1
            Loop While i <= DerLig
            If i <= DerLig Then .Range(.Cells(i, k), .Cells(DerLig, k)).ClearContents
        Next k
    End With
End Sub

Edit : J'avais pas regardé ton classeur (de peur de ce que je pouvais y découvrir... ! ) mais après avoir jeté un oeil, un dernier conseil :

Réserve autant que possible les modules des feuilles pour les macros évènementielles de la feuille ou des ActiveX de la feuille s'il y en a, et à la rigueur des proc. auxiliaires des évènements, et place les macros ordinaires ou standard (comme celle-ci) dans un module Standard !

Tu n'auras qu'à t'en féliciter à terme...

Cordialement.

Bonsoir,

Merci pour vos conseils, je vais esseyer de m'améliorer malgrès mes erreurs, étant débutant je m'y attendait à toute les fautes.

Je vais étudier votre macro pour comprendre et pouvoir améliorer ma connaissance des macros.

Sur ce, merci beaucoup et j'espère que tu as bien rigolé.

Cordialement,

Dettox

Bonjour,

Il m'arrive de rigoler ! Et j'espère que tu ne t'en vexes pas ! Il m'arrive aussi de rigoler à mon propos, par exemple quand je passe des heures à chercher les raisons d'une erreur provoquée par un truc que j'ai écrit, qui n'a aucun sens et que j'ai en permanence sous les yeux... (là je rigole, mais après avoir abondamment ralé... !)

D'une façon générale, si je donne des explications, même s'il s'agit d'éléments simples, c'est que je pense qu'elles sont nécessaires à un débutant, et je ne rigole pas des erreurs commises, cela me fait tout au plus sourire quand il s'agit d'erreurs évidentes mais que tout le monde a eu l'occasion de faire à un moment ou un autre...

Si je rigole, c'est qu'il s'agit d'une bévue tellement élémentaire qu'elle n'est même pas classable parmi les erreurs VBA. Là je n'ai pas d'explication à donner, tu peux résoudre toi-même, sans outil particulier, un peu de logique ou du simple bon sens... Mais rassure-toi, les bévues de ce type restent toujours à la portée de tous, même quand on est chevronné... !

Bonne journée.

Rechercher des sujets similaires à "condition macro vba"