Suppresion de plusieurs colonnes en fonction de variable

idrysse31 Messages postés 6 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 19 février 2010 - 19 févr. 2010 à 12:52
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 19 févr. 2010 à 17:53
Bonjour,

pour la suppression de plusieurs lignes en fonction de variable, la fonction suivante peut être utilisée :

> Rows(LigneDebut & ":" & LigneFin).Delete

Existe-t-il la même chose pour les colonnes? Apparemment, la fonction suivante ne marche pas :

> Columns(ColonneDebut & ":" & ColonneFin).Delete

Ça m'embêterait d'avoir à utiliser une boucle...

Merci d'avance.

13 réponses

malakrouhhi Messages postés 69 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 24 février 2010 2
19 févr. 2010 à 13:08
Bonjour

voilà :

  xlWorkSheet.Range("A:C").Select()
  xlApp.Selection.delete()
0
idrysse31 Messages postés 6 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 19 février 2010
19 févr. 2010 à 14:05
Bonjour,

merci de la réponse.
Mais comme je l'ai précisé, les colonnes de début et de fin sont contenues dans des variables (ex: ColonneDebut et ColonneFin).
Autre solution à proposer?
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
19 févr. 2010 à 14:13
Ton code fonctionne pour les colonnes à condition, comme te le fait remarquer malakrouhhi, de mettre les lettres en paramètres.

Toi, tu dois mettre les numéros de colonne je pense ^^

Molenn
0
idrysse31 Messages postés 6 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 19 février 2010
19 févr. 2010 à 14:17
On m'a donné la solution à mon problème :

Range(Columns(ColonneDebut),Columns(ColonneFin)).EntireColumn.Delete


Merci de votre aide.

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
19 févr. 2010 à 14:18
Bonjour,
Oui ? et alors ?
Sheets(1).Columns("A:B").Delete

(exemple)
te parait du chinois ?
et ceci :
toto = Columns("A").Address
tata = Columns("c").Address
Sheets(1).Range(toto, tata).Delete

et on ppourrait en inventer d'autres .... à quasi l'infini !

à malakrouhhi, maintenant :
Quand comptes-tu donc commencer à procéder autrement que par sélectionner systématiquement puis agir sur ta s&élection ? (ni beau ni gentilo pour ton appli !)
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
idrysse31 Messages postés 6 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 19 février 2010
19 févr. 2010 à 14:31
Pourquoi être agressif?
Et comment faire si je souhaite supprimer les colonnes de 137 à 189? Je ne vais quand même pas chercher la correspondance en lettre et utiliser ton code!?
Voilà pourquoi la solution qui m'a été donnée correspond ce que je recherche. Cependant, si tu as une autre solution, je suis preneur car on apprend tous les jours.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
19 févr. 2010 à 14:37
Alors commence par apprendre ce que sont les collections (la collection Columns en est une !)
Tu n'aimes pas les lettres et préfère les index ? Oui ? et alors ?
toto = Columns(1).Address
tata = Columns(3).Address
Sheets(1).Range(toto, tata).Delete

Je te conseille vivement de t'intéresser, avant d'aller plus loin, à ce qu'est une collection (et c'est valable pour toutes les collections, et ce :m tant sous VBA que sous VB5).
Bonne étude.

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
idrysse31 Messages postés 6 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 19 février 2010
19 févr. 2010 à 14:51
Merci.
Mon petit doigt me dit que la programmation, c'est ta vie...
Bonne chance.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
19 févr. 2010 à 14:57
La programmation n'est pas ma vie, non (en ce moment, ce serait plutôt la sculpture et l'enlèvement bénévole de ronces...)
Mais toi, c'est différent (surtout si tu veux t'en servir pour gagner ton pain !)
Alors : commence par le commencement (les bases)
Regarde, par exemple : tu te demandais comment chercher la correspondance en index (ton "chiffre") d'une adresse en lettres . Et la propriété Column ? tu ne sais pas encore ce qu'elle représente ?
essaye donc
MsgBox Columns("AE").Column ' ===>> colonne d'index 31
Mais tu n'as pas besoin de ceci (ce n'est là que pour que tu comprennes l'intérêt de t'y mettere réellement) dans ton problème actuel

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
idrysse31 Messages postés 6 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 19 février 2010
19 févr. 2010 à 15:14
Je pense m'en sortir pas mal en gagnant mon pain doré avec 3500 euros par mois!!!
Sinon, je pense sérieusement que tu dois avoir de bonnes connaissances mais malheureusement, tu as l'air d'avoir du mal à les partager sans mépris.
Sur ce, bon courage avec tes ronces et bonne sculpture.
0
malakrouhhi Messages postés 69 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 24 février 2010 2
19 févr. 2010 à 16:12
Merci "ucfoutu" pour ta remarque , mais comme "idrysse31
" a dit ; tu peux au moins faire partagé l'information avec moin d'agressivité ??!!!!!, et comme même je t'ai dejà fait la remarque !!!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
19 févr. 2010 à 17:41
Ce n'est rien... juste un peu d'étonnement bien justifié que génère le paradoxe entre l'intéressement apparent (question posée) et le désintéressement (sur les points de base).
Mais j'en comprends maintenant la raison : idrysse31 est très loin d'être dans le besoin ('je tâcherai de ne pas l'oublier)....
J'aime, malakrouhhi, que l'on ne se contente pas de poser des questions pour un oui et pour un non, sans faire soi-même l'effort de base (s'intéresser vraiment à ce que l'on fait ou que l'on apprend - au moins les bases). Lorsque c'est en vue de gagner son pain, c'est essentiel. Lorsque c'est simplement pour se divertir, on joue alors le jeu, hein..., y compris en prenant tout son temps (puisque ce n'est qu'un divertissement)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
19 févr. 2010 à 17:53
Et toi, malakrouhhi, tu devrais réellement t'intéresser de près à la raison du conseil que je t'ai donné plus haut, conseil sans cesse répété suir ce forum (et pas seulement par moi) !



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0