Macro active que pour feuille 2

Bonjour le forum....

Très récent passionné d'excel, je bloque depuis plusieurs jours sur une macro que je n'arrive pas à valider.... malgré mon apprentissage d'autodidacte.

Je vous présente mon projet:

Le classeur comprend 4 feuilles....

_Stock

_alerte

_7 jours

_30 jours

Je souhaiterais rédiger une macro activable pour exclusivement la feuille "alerte" qui supprime les valeur en colonne G <=0. A savoir que la valeur de G est obtenue par une formule.

Et si possible que le nombre de lignes de la feuille alerte n'en soit pas impactée...

Vous remerciant par avance pour votre contribution.

Au plaisir de vous lire...

bonsoir

Je souhaiterais rédiger une macro activable pour exclusivement la feuille "alerte" qui supprime les valeur en colonne G <=0. A savoir que la valeur de G est obtenue par une formule.

ne peux-tu pas mettre cette suppression dans ta formule ? ajouter un =si(taformule<=0;"";taformule)

où taformule est la formule dont tu parles (voir extrait de ta demande)

Bonjour h2so4,

Merci de te pencher sur mon cas de figure.

La formule actuelle en G est =SI(B2="";"";C2-1-AUJOURDHUI()) elle décompte le nombre de jours restants ou dépassés par rapport a une date en C. B correspond a la désignation de mon article. J'ai essayé d'y coller une formule de suppression mais un message me dit "trop d'information". Du coup j'en ai conclu qu'il fallait passer par VBA.

Je souhaiterais que lorsque ma valeur de G est =-1 la ligne s éfface....car lorsque 0 est renseigné cela correspondra à la date du jour d'intervetion sur mon produit.

J'adapterais ensuite aux feuilles -7JOURS et -30JOURS.

Espérant avoir été clair dans mes explications, merci pour ton implication.

9test-3.xlsm (53.35 Ko)

Bonjour,

tu veux que la ligne soit effacée si la valeur en colonne G est négative (il faut une macro ) ou tu veux effacer le contenu de la colonne G pour les valeurs négatives (une formule suffit).

Je souhaite effacer le contenu de la ligne: lorsque G est =-1 pour "ALERTE", lorsque G est =0 pour "-7JOURS" et lorsque G est =7 pour "-30JOURS"

Bonjour,

une adaptation de ton code. Sache qu'en supprimant les lignes tu diminues le nombre de lignes qui contiennent des formules.

Sub SupprimeLigneSiValeur0()

    Dim i As Integer
    With Sheets("ALERTE")
        For i = .Range("A65000").End(xlUp).Row To 1 Step -1
            If .Range("G" & i) < 0 Then
                .Range("G" & i).EntireRow.Delete
            End If
        Next
    End With
    With Sheets("-7jours")
        For i = .Range("a65000").End(xlUp).Row To 1 Step -1
            If .Range("G" & i) <= 0 Then
                .Range("G" & i).EntireRow.Delete
            End If
        Next
    End With
    With Sheets("-30jours")
        For i = .Range("a65000").End(xlUp).Row To 1 Step -1
            If .Range("G" & i) <= 7 Then
                .Range("G" & i).EntireRow.Delete
            End If
        Next
    End With
End Sub

merci pour ton retour...cette macro remplace bien la mienne on est d'accord....?

oui, mais vérifie que tout fonctionne comme tu le souhaites en ayant pris une copie de ton classeur auparavant.

Re h2so4, merci pour ton travail,

Après essais, ta macro fonctionne à merveille en ce qui concerne la fonction supprime les lignes, mais je suis obligé de garder ma première macro pour "alimenter" les feuilles alerte, 7jours et 30jours... Elle n'estt pas conjointe dans la tienne. De plus ma macro est devenue capricieuse, elle copie bien les lignes concerné de la feuille stocks dans les feuilles cible mais les lignes apparraissent en bas de la feuille...Paranormal?

re-bonjour,

Après essais, ta macro fonctionne à merveille en ce qui concerne la fonction supprime les lignes, mais je suis obligé de garder ma première macro pour "alimenter" les feuilles alerte, 7jours et 30jours... Elle n'estt pas conjointe dans la tienne. De plus ma macro est devenue capricieuse, elle copie bien les lignes concerné de la feuille stocks dans les feuilles cible mais les lignes apparraissent en bas de la feuille...Paranormal?

la macro que j'ai proposé REMPLACE ta macro SupprimeLigneSiValeur0() existante, pas les autres.

Ta macro est devenue capricieuse, ce n'est pas à cause de la solution que j'ai proposée, elle fait ce que tu lui demandes de faire. Copier après la dernière ligne inutilisée en colonne G. Comme tu y as des formules jusqu' "en bas de la feuille", la dernière ligne est la dernière qui contient une formule... paraNormal. Tu ferais mieux de déterminer la dernière ligne sur base d'une autre colonne. Voir la macro que je t'ai proposée (dernière ligne en fonction de la colonne A)

OK super merci a toi pour l'attention que tu as porté sur mon travail et pour ta solution.

Je ne comprends pas pourquoi ma macro se comporte ainsi alors qu'auparavant elle copiait mes ligne en haut de la feuille cible...Je vais essayer de trouver ce qui en ai la cause...et rectifier.

Je cloture en résolu.

Encore merci

bonsoir,

vais essayer de trouver ce qui en ai la cause...et rectifier.

tu as sans doute ajouté des formules ou recopié des lignes qui contenaient cette formule jusqu'en bas de ton tableau . Si tu n'as pas modifié ta macro, je ne vois que cela.

Rechercher des sujets similaires à "macro active que feuille"