Macro VBA qui parcourt les cellules de la colonne et supprime celle-ci pour total=0

mehdi8793

XLDnaute Nouveau
Bonjour à tous,

Je suis dans la création d'une application.
Je copie colle des valeurs a partir d'autres fichiers. Le problème une fois les valeurs copiées, il y a des colonnes avec les cellules toute a zéro ou vide.

Je n'arrive pas à créer une macro qui me permet de parcourir les colonne cellules par cellules puis supprime celle-ci si le total de la colonne = 0 ou si la colonne entière est vide. Mais comment faire sachant que je peux avoir une colonnes avec des cellules vides et 0 mais qui présente sur une cellule une valeur que je doit donc garder. En sois j'ai besoin d'exécuter cette macro a parti de la ligne 6 (uniquement les données)de mon fichier test jusqu'à la fin des données.

Je vous ai mis un fichier test qui illustre mon problème. Vu que mon fichier de base présente des données confidentielle, je vous ai juste mis la macro pour parcourir que je n'arrive pas a faire.

De plus, est-il possible de mettre au point une macro qui permet de vérifier sur une ligne précise le minimum d'une colonne est colorier cette mini? J'y arrive grâce au formule afin de récupérer le mini mais je ne trouve comment avoir une macro qui traite ceci en automatique.

Je vous remercie d'avance de votre aide et de votre patience.

Cordialement

Mehdi
 

Pièces jointes

  • Testforum.xlsm
    20.7 KB · Affichages: 59
  • Testforum.xlsm
    20.7 KB · Affichages: 65
  • Testforum.xlsm
    20.7 KB · Affichages: 60

Staple1600

XLDnaute Barbatruc
Re : Macro VBA qui parcourt les cellules de la colonne et supprime celle-ci pour tota

Bonsoir à tous

mehdi8793
Si j'ai compris de quoi il retourne, le code VBA ci-dessous fait-il ce que tu souhaites ?
Code:
Sub a()
Dim i&
Application.ScreenUpdating = False
For i = 85 To 6 Step -1
If Application.CountBlank(Cells(i, "A").Resize(, 30)) = 28 And Application.Sum(Cells(i, "AD").Resize(, 2)) = 0 Then
Rows(i).EntireRow.Delete
End If
Next
End Sub
 

mehdi8793

XLDnaute Nouveau
Re : Macro VBA qui parcourt les cellules de la colonne et supprime celle-ci pour tota

Bonjour, merci pour votre aide,

je viens de tester la macro elle supprime les lignes, si je modifie
Code:
Rows(i).EntireRows.Delete
pour mettre

Code:
Rows(i).EntireColumn.Delete
, cela me supprime l'intégralité des données.
Pour la condition IF il me semble c'est bon. Dans mon cas je cherche a conserver la colonne ssi une valeur insérer dans la plage est supérieur a 0 (c'est plus simple) meme si il y a une case vide. J'espère que je me suis bien exprimé, pour que vous comprenait mon problème.

Merci pour votre aide, et de votre amabilité.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro VBA qui parcourt les cellules de la colonne et supprime celle-ci pour tota

Re

Ligne=Row
Colonne= Column

Et pour ce qui me concerne
J'espère que je me suis bien exprimé, pour que vous comprenait mon problème.
J'ai pas tout saisi
Le plus simple serait de joindre un fichier exemple avec deux onglets
Dans le premier onglet: la situation initiale
Dans le second: le résultat à obtenir

NB:
Je n'arrive pas à créer une macro qui me permet de parcourir les colonne cellules par cellules puis supprime celle-ci si le total de la colonne = 0 ou si la colonne entière est vide
Pour moi , les cellules de la colonne A à la colonne AD sont une "ligne"
donc il s'agit de sommer une ligne et non pas une colonne.
Exemples
=SOMME(A1:A10) est la somme d'une colonne
=SOMME(A1:E1) est la somme d'une ligne.
 

mehdi8793

XLDnaute Nouveau
Re : Macro VBA qui parcourt les cellules de la colonne et supprime celle-ci pour tota

Bonjour,

merci pour votre réponse voici un fichier test qui illustre avec 2 onglets l'existant et le résultat voulu.

On peut très bien supprimer une colonne en fonction du résultat de la somme sur une ligne particulière? Dans ce cas faut repérer le mini de la ligne 2 et le retourner si ile st = 0 ou vide alors on supprime?


Cordialement
 

Pièces jointes

  • TEst1_forum.xlsm
    45.5 KB · Affichages: 46

Discussions similaires

Réponses
2
Affichages
129