Code VBA suppression de cellules à plusieurs variables

Bonjour à vous,

Je vous sollicite aujourd'hui pour un fichier excel nécessitant le recours d'une Macro.

J'ai un fichier d'analyse et j'aimerais pouvoir accentuer l'automatisation de celui-ci.

Par habitude, j'essaye d'avoir recours à un autre moyen que les macro comme la fonction Si mais je n'ai trouvé aucune formule permettant la suppression de cellule en dehors de VBA. Ma problématique est la suivante :

  • = Si DH = 0 ET Si BY = 0 alors on supprime toutes les cellules ayant pour valeur 0 dans la colonne BY.

A savoir que mon fichier dispose d'un bandeau à macro où ma base de données débute à la cellule A7 jusqu’à la colonne DQXXXXX. Concernant la longueur de la base de données, elle varie selon le fichier que je souhaite importer, approximativement maximum 100 000 lignes.

Si vous avez des pistes permettant de me guider vers ce code VBA, je suis preneur ! Je débute sur VBA et ce code après quelques heures de lecture et de recherche sur plusieurs forums, ce code me donne du fil retordre.

Merci par avance pour vos retours.

Bonjour,

je pense qu'un fichier exemple serait bien plus explicite .... dans l'état personnellement j'y comprend que peux de Chose

Si DH=0 C'est quoi pour vous DH ? par chez nous c'est la référence à la colonne DH

Alors si vous parlez en plus de ligne BY

Pardon pour mon omission.

Il s'agit de données chiffrées :

  • DH : Volume ETP.
  • BY : Nombre de jours.

Si mon volume d'ETP = 0 et que mon nombre de jours = 0, alors supprimer toutes les cellules de la colonne BY à partie de BY7 ayant pour valeur à 0 jour.

J'espère avoir été plus explicite

Pour la traduction de DH et BY oui c'est pus clair.

Pour les besoins de la réponse pas de changement : merci de joindre un fichier exemple sans infos privées ( même de 4, 5 lignes c'est suffisant )

Ci-joint un fichier où j'ai extrait les infos pour des raisons de confidentialité, j'ai laissé les colonnes qui correspondent aux variables (surlignés en jaune).

3forum-base.xlsx (17.77 Ko)

Re, c'est un peu plus facile avec l'exemple ; et c'est bien ce dont je parlais précédemment : DH et BY sont des colonnes pas des lignes.

Donc dans l'exemple joint par exemple : pour la ligne JEAN ( ligne 8 )

Si DH8 et BY8 sont à zéro on fait quoi ? on efface tout les valeurs 0 de la ligne 8 ? ou toutes les valeurs 0 de la colonne BY ? comme vous aviez écrit ?

(Car dans ce cas on touche aux valeurs qui ne sont pas à "jean"

Re,

Tout d'abord, merci pour votre aide.

Pour répondre à votre question : Si DH8 ET BY8 = 0, alors on supprime toute la ligne numéro 8 car elle ne rentre pas dans notre champ d'étude puisque l'individu n'a pas de jours (BY) et ni d'ETP (DH).

Je vous ai mis à disposition une mise à jour du fichier. En effet, dans l'onglet "Résultat", se trouve le résultat que je cherche à obtenir après l'application de la Macro que je cherche à développer. A l'instar de la ligne numéro 8,9 et 10, elles sont supprimées car elles ne rentrent pas dans mon étude, il s'agit de ligne inutile à mon rapport.

Je m'excuse si ma demande initiale n'a pas été assez explicite, j'espère que cela vous permettra de comprendre au mieux ma problématique dorénavant

4forum-base.xlsx (23.90 Ko)

Salut Kelian,
Salut Xmenpl,

je m'étais fait les mêmes réflexions...
Un double-clic démarre la macro.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim rCells As Range, tTab, tBDD, iCol1%, iCol2%, lgIdx&
'
Cancel = True
Set rCells = Range("A8").Resize(Range("A" & Rows.Count).End(xlUp).Row - 7, Cells(7, Columns.Count).End(xlToLeft).Column)
tTab = rCells.Value
rCells.Value = ""
tBDD = rCells.Value
iCol1 = Range("A:DH").Columns.Count
iCol2 = Range("A:BY").Columns.Count
For x = 1 To UBound(tTab, 1)
    If CDbl(tTab(x, iCol1)) > 0 And CDbl(tTab(x, iCol2)) > 0 Then
        lgIdx = lgIdx + 1
        For y = 1 To UBound(tBDD, 2)
            tBDD(lgIdx, y) = tTab(x, y)
        Next
    End If
Next
rCells.Value = tBDD
'
End Sub
6kelian.xlsm (30.90 Ko)


Joyeux Noël !

A+

Bonsoir Curulis57 et Xmenpl,

Ce code est magique

Merci infiniment pour votre aide et Joyeux Noël à vous !

Rechercher des sujets similaires à "code vba suppression variables"