Menu

Inserer une colonne VBA EXCEL [Fermé]

tobec - 14 avril 2010 à 15:49 - Dernière réponse : dct33 41 Messages postés jeudi 8 avril 2010Date d'inscription 20 avril 2010 Dernière intervention
- 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 

7 réponses

chossette9 4429 Messages postés lundi 20 avril 2009Date d'inscriptionContributeurStatut 12 septembre 2014 Dernière intervention - 14 avril 2010 à 15:55
+5
Utile
5
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.
Cette réponse vous a-t-elle aidé ?  
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 4429 Messages postés lundi 20 avril 2009Date d'inscriptionContributeurStatut 12 septembre 2014 Dernière intervention - 14 avril 2010 à 16:32
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 4429 Messages postés lundi 20 avril 2009Date d'inscriptionContributeurStatut 12 septembre 2014 Dernière intervention - 14 avril 2010 à 16:56
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.
dct33 41 Messages postés jeudi 8 avril 2010Date d'inscription 20 avril 2010 Dernière intervention - Modifié par dct33 le 14/04/2010 à 18:16
+1
Utile
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