Suppression de colonnes par VBA

  • Initiateur de la discussion Initiateur de la discussion daniel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

daniel

Guest
Bonjour à toutes et tous,

Excusez moi de reposer à nouveau ma question...qui concerne la programmation VBA d'un test... Je voudrais programmer un test qui me permette de :

1. sélectionner 7 colonnes d'une feuille d'un classeur
2. tester si l'une ou plusieurs de ces colonnes est vide (ni caractères, ni formules)
3. de supprimer cette ou ces colonnes vides, de manière à ce que les autres colonnes (pleines) deviennent contiguës

J'espère que vous pourrez m'aider, je vous en remercie d'avance !


Daniel
 
OK mais il faut définir au moins une limite dans ton test

Dans ma macro je limite à tester à la colonne n°10 variable I (colonne J)

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 10/01/2004 par home
'


For i = 10 To 1 Step -1 'numéro de colonne
If Cells(1, i).End(xlDown).Row = 65536 And Cells(1, i).Formula = "" Then 'si dernière ligne
Columns(i).Delete
End If
Next i
End Sub
 
OUPS j'ai lu trop vite

Ta limite est 7 colonnes .......contigues je suppose ?

Si oui le mieux est de sélectionner une cellule de la dernière colonne à tester si tu maintiens ma macro

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 10/01/2004 par home
'

Dim xdercol, xfintest As Integer

xdercol = ActiveCell.Column
xfintest = 1

If xdercol > 7 Then
xfintest = xdercol - 7
End If


For i = xdercol To xfintest Step -1

If i > 0 And Cells(1, i).End(xlDown).Row = 65536 And Cells(1, i).Formula = "" Then 'si dernière ligne
Columns(i).Delete
End If

Next i
End Sub
 
Quel abruti (je parle de moi)

çà marche mais le test I > 0 n'a plus d'intêrêt.

Etant donné le test fait plus haut (xfintest) la variable I ne sera jamais <=0.


If Cells(1, i).End(xlDown).Row = 65536 And Cells(1, i).Formula = "" Then 'si dernière ligne
 
Ca marche !!

Un immense merci, coyote, tu es loin d'être un abruti ! En plus, ça me permet de voir comment fonction "For...next", je n'avais pas très bien compris...

Encore merci pour ton aide et bravo !

Daniel
 
Merci pour tes compliments

FOR...... NEXT

Est une test en boucle avec un compteur si on veut

Le compteur est I (dans notre exemple cités ci dessus)

Il faut définir la fin des instructions de la boucle par NEXT I .....toujours précisé la variable car on peut imbriquer plusieurs boucles (avec plusieurs variables l'une dans l'autre)

FOR I =1......

FOR J = 1.....

......


NEXT J

NEXT I


On définit les bornes (limite) de la boucle

FOR I = 1 TO 10

commence à 1 et termine à 10

Le NEXT I renvoie +1 à la valeur I

Toutefois il s'agit de l'incrémentation par défaut

Pour la changer compléter les instructions par STEP

Par exemple

FOR I=10 TO 0 STEP -2

***

NEXT I


I prendra succéssivement les valeurs 10,8,6,4,2,0 car l'incrémentation est de -2 à chaque fois
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
438
Retour