Suppression de colonnes automatiques

Nitrog

XLDnaute Junior
Bonjour à toutes et tous,

Je me permet de vous demander un peu d'aide, voilà de quoi il s'agit.

J'ai un fichier qui va de la colonne a1 à cp 500, sur la ligne a3 à cp3 certaines colonnes ont du texte d'autres 0, j'aimerai pouvoir suprimer automatiquement les colonnes qui se retrouve avec un 0.

Je pense qu'une commande IF pourrait m'aider, mais après plusieurs essais j'ai toujours des messages d'erreur.

Merci par avance pour votre aide.

Cordialement

Nitrog
 

Pierrot93

XLDnaute Barbatruc
Re : Suppression de colonnes automatiques

Bonjour Nitrog

si j'ai bien compris :

Code:
Sub test()
Dim c As Integer
For c = 94 To 1 Step -1
    If Cells(3, c).Value = 0 Then Cells(3, c).EntireColumn.Delete
Next c
End Sub

bon après midi
@+
 

Nitrog

XLDnaute Junior
Re : Suppression de colonnes automatiques

Merci pierrot93,

C'est exactement ce que je voulais, mais j'ai encore un petit problème, lorsque je lance la macro la feuille de calcul clignote pendant un certain temps et je vois les lignes et les colonnes se supprimer.
Y a t'il un moyen de supprimer ce bug et gagner du temps.

Voilà le code complet avec une extention pour amener le total des colonnes à la dernière ligne.

'Supprimer ligne vides et Colonnes

Sheets("2").Select
Dim x As Integer
With Sheets("2")
For x = .Range("A503").End(xlUp).Row To 1 Step -1
If .Range("A" & x) = 0 Then
Rows(x).Delete
Else
Exit For
End If
Next
End With
Dim c As Integer
For c = 94 To 1 Step -1
If Cells(3, c).Value = 0 Then Cells(3, c).EntireColumn.Delete
Next c

' Total_ligne_503

Sheets("2").Select
With Sheets("2")
Rows("503:503").Cut
Cells.Find(What:="End", After:=Range("A3"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveSheet.Paste
End With

Voilà, j'espère avoir été assez clair, c'est pas toujours évident d'expliquer.

Encore merci pour votre aide.

Nitrog
 

Pierrot93

XLDnaute Barbatruc
Re : Suppression de colonnes automatiques

Bonjour,

pour éviter le raffraichissement d'écran, essaye ainsi, a noter, pour gagner en rapidité il est préférable d'éviter les "select" ou "activate" dans le code, d'ailleurs ils ne sont presque jamais nécessaires...

Code:
Sub test()
Dim c As Integer
[COLOR="blue"][B]Application.ScreenUpdating = False[/B][/COLOR]
For c = 94 To 1 Step -1
    If Cells(3, c).Value = 0 Then Cells(3, c).EntireColumn.Delete
Next c
[B][COLOR="Blue"]Application.ScreenUpdating = True[/COLOR][/B]
End Sub

bonne soirée
@+
 

Nitrog

XLDnaute Junior
Re : Suppression de colonnes automatiques

Re bonjour, Pierrot93

Après avoir intégré vos infos, j'ai constaté que ce n'est pas la suppression des colonnes qui gène, donc votre code, c'est le mien sur la suppression des lignes qui bug.

Je remets mon code si vous voyer quelque chose qui cloche ?


'Supprimer ligne vides et Colonnes

Dim c As Integer
Application.ScreenUpdating = False
With Sheets("2")
For x = .Range("A502").End(xlUp).Row To 1 Step -1
If .Range("A" & x) = 0 Then
Rows(x).Delete
Else
Exit For
End If
Next
For c = 94 To 1 Step -1
If Cells(3, c).Value = 0 Then Cells(3, c).EntireColumn.Delete
Next c
Application.ScreenUpdating = True
End With

Rows("503:503").Cut

Cells.Find(What:="End", After:=Range("A2"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveSheet.Paste

Encore merci pour votre aide.

Nitrog
 

Pierrot93

XLDnaute Barbatruc
Re : Suppression de colonnes automatiques

Bonjour Nitrog

attention, certaines instructions à l'intérieur de ton bloc "with" s'exécuteront sur la feuille active et non sur la feuille concernée par le bloc, si elles ne sont pas précédées d'un point...

sinon comme ca je ne vois pas trop, un petit fichier sans données confidentielles nous permettrait de mieux t'aider...

@+
 

Nitrog

XLDnaute Junior
Re : Suppression de colonnes automatiques

Merci Pierrot,

Je vais voir si je peux extraire quelque chose, pas aisé, il faut que je recré une base de donnée (elle est confidentielle).

Je reprend contact la semaine prochaine

Merci
 

Nitrog

XLDnaute Junior
Re : Suppression de colonnes automatiques

Bonjour Pierrot,

j'ai regardé pour extraire des données du fichier de base, mais cela m'obligerai à modifier manuellement toutes les entêtes de colonnes. Dur !!

En revanche j'ai extrait le code complet peut être qu'avec sa vous pourrez trouver ou il y a des bugs.

En résumé voilà le cheminement:

J'extrait un fichier du serveur - je le copie sur un dossier et sur la feuille donnée - j'insere des calculs sur cette feuille - je copie la feuille donnée sur la feuille1 les donnée copiées dépendent d'une feuille de calcul nommée choix ou la sélection des colonnes se fait par des Chekbox - je recopie la feuille 1 sur 2 pour la formater.

Ben voilà j'ai surement oublié qlq chose. Merci encore de prendre du temps pour m'aider.

Nitrog
 

Pièces jointes

  • codeA2010.xls
    21.5 KB · Affichages: 53

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 862
Membres
103 979
dernier inscrit
imed