VBA Excel + Ajout de colonne à un worksheet actif

beyv Messages postés 4 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 25 mai 2006 - 23 mai 2006 à 03:32
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 3 sept. 2006 à 14:08
bonjour à tous,

Je développe une petite application avec VBA Excel. Je voudrais pouvoir ajouter par programme une colonne à un worksheet actif (pour conserver les numéros de ligne avec de faire le tri)

Merci de me dire ce qui ne va pas avec ma procédure (voir ci dessous). Il y a un pb avec l'utilisation de ObjectLists (c'est du moins à cette ligne que l'exécution crash)

Le message d'erreur est : Erreur d'exécution '9', L'indice n'appartient pas à la sélection

Sub AddListColumn()
    Dim wrksht As Worksheet
    Dim objListCol As ListColumn
    Dim i, total_ligne As Integer
   
    Set wrksht = ActiveWorkbook.Worksheets("Mysheet")
   
    Set objListCol = wrksht.ListObjects(1).ListColumns.Add
   
    objListCol.Name = "Rang"
   
    total_ligne = wrksht.ListObjects(1).ListRows.Count
   
    For i = 1 To total_ligne
        wrksht.Cells(i + 1, "Rang") = i + 1
       
    Next i
   
End Sub

Merci d'avance

8 réponses

crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
23 mai 2006 à 17:24
crilun

t'as essayé


:Set objListCol = wrksht.ListObjects(0).ListColumns.Add ?

par ce que ca tombe ca commence a 0 et pas a 1
0
beyv Messages postés 4 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 25 mai 2006
23 mai 2006 à 18:59
Oui j'ai essayé avec l'index 0 (Set objListCol = wrksht.ListObjects(0).ListColumns.Add ) et j'ai obtenu le même message d'erreur. ce que je trouve bizarre d'ailleurs puisque l'instruction MsgBox wrksht.ListObjects.Count retournait 0 comme resultat.
0
crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
23 mai 2006 à 20:59
crilun

essaye ca pour ajouter ta colonne :
Worksheets("Mysheet").Columns("C:C").Insert Shift:=xlToRight
0
beyv Messages postés 4 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 25 mai 2006
25 mai 2006 à 06:57
merci crilum,
Avec ton code, j'insère une colonne à la position C.
Comment insérer au bout droit d'une rangée de colonnes dont le nombre n'est pas connu à l'avance?

merci à tous (j'attends vos propositions)
0

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

Posez votre question
crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
25 mai 2006 à 13:22
crilun

Worksheets("Feuil1").Columns(i).Insert Shift:=xlToRight

avec i le numero de colonne à partir de la quelle tu veut inserer à droite
0
beyv Messages postés 4 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 25 mai 2006
25 mai 2006 à 19:26
bonjour crilun,


merci pour ton aide. ça marche très bien ton code.


Cela me donne de nouvelles idées.
0
crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
25 mai 2006 à 19:48
crilun

pourrais tu valider en réponse accepté alors our ceux qui aurait le meme pb stp
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
3 sept. 2006 à 14:08
Déplacé sur le forum VB6

















VC# forever
0
Rejoignez-nous