Inserer une colonne VBA EXCEL [Fermé]

- - Dernière réponse : dct33
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
20 avril 2010
- 14 avril 2010 à 18:14
Bonjour a tous,

Je cherche a inserer une colonne dans une feuille, une fois la colonne insérée je voudrai remplir chaque cellule avec le chiffre "1" jusqu'a la 267ème cellule.

Le tout doit etre lancé en cliquant sur un bouton.

Le bouton se trouve sur la premiere feuille (feuil1) et je dois insérer cette nouvelle colonne dans la deuxieme feuille (Feuil2).

Voila le code que g écrit :


    Sheets("Feuil2").Select
    Columns("F:F").Select
    Selection.Insert Shift:=xlToRight
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("F2").Select
    Selection.AutoFill Destination:=Range("F2:F267")
    Range("F2:F267").Select



Si je suis ici, c'est évidement parce que ca ne fonctionne pas^^

voici l'erreur retournée :

"Erreur d'execution '1004'

La méthode Select de la classe Range a échoué."


Quelqu'un aurai t'il une solution?

Merci d'avance a tout ceux qui m'aideront ou essayeront de m'aider.

Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
4429
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1147
6
Merci
Bonjour,

le mieux aurait été que tu nous dise sur quelle ligne tu avais cette erreur d'exécution !

J'ai un modifié ton code (bien qu'il n'y avait aucun problème d'exécution chez moi), car les Select alourdissent le code et l'exécution de la macro :

Sheets("Feuil2").Activate
    Columns("F:F").Insert Shift:=xlToRight
    Range("F2").FormulaR1C1 = "1"
    Range("F2").AutoFill Destination:=Range("F2:F267")
    Range("F2:F267").Select


Cordialement.

Dire « Merci » 6

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 59934 internautes nous ont dit merci ce mois-ci

J'ai essayé ton code, pas de plantage mais un probleme...la colonne est crée et rempli sur la feuille1.

L'erreur de mon code se situe sur la ligne "Columns("F:F").Select".

Merci de ton aide.
chossette9
Messages postés
4429
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1147 -
Ah ? je viens de re-tester chez moi le bout de code que je t'ai fourni, ça marche niquel, la colonne se remplit bien sur la feuille 2.

Quelle version d'Excel as-tu en ta possession ?

Logiquement, l'erreur sur la sélection de la colonne a disparu avec mon code, non ?
Je me sers d'office 2003.

Oui l'erreur a bien disparu avec ton code, plus aucun bug, mais la nouvelle colonne se créé et s'alimente sur la feuille2.

Merci encore
chossette9
Messages postés
4429
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1147 -
tobec - 14 avr 2010 à 16:08
J'ai essayé ton code, pas de plantage mais un probleme...la colonne est crée et rempli sur la feuille1.

tobec - 14 avr 2010 à 16:52
Je me sers d'office 2003.

Oui l'erreur a bien disparu avec ton code, plus aucun bug, mais la nouvelle colonne se créé et s'alimente sur la feuille2.


Sur quelle feuille ta colonne doit-elle être insérée ? Si c'est sur la feuille 2, le code est bon !
C'est bien sur la feuille2, mais pour une raison encore non explique ca ne fonctionne pas^^

j'ai trouvé une solution pour régler le probleme, ce n'est peu etre pas très "propre" mais ca fonctionne^^

Merci encore de ton aide, ca m'a bien aidé.

Merci encore et a bientot.
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
20 avril 2010
38
2
Merci
Bonsoir,
'exemple insertion en colonne 4 ou D selon l'affichage

'sélection de la page
sheets(2).select

' insertion de la colonne
Range("D1").Select
Selection.EntireColumn.Insert

'remplissage avec une boucle for

for x = 1 to 267

' cells( ligne , colonne ) la ligne évolue en fonction de x

cells(X ,4)= "1"

next X

sheets(1).select


Bonne programmation