Problème de Formule

Résolu
Bonjour,
J'ai un classeur qui contient des UserForm sous VBA, et avec des textBox, Dans un TextBox je fais entrer les dates de naissnaces (Dans la colonne G) et je travaille avec la formule Annee() pour extraire l'année de naissance afin de calculer le nombre des élèves ayant un certain nombre.
Mais le problème est cette erreur qui apparaît quand je fais entrer une date Erreur d'execution "1004". La méthode AutoFill de la classe range a échoué.
La formule que j'ai entré sous vba dans une macro et que j'ai appelé dans le bouton ok

Sub FormulEtendtre()

Worksheets("Tabscol").Range("G12").Formula = "=IF(F12="""","""",YEAR(F12))"
Selection.AutoFill Destination:=Range("G12:G"), Type:=xlFillDefault

End Sub

S'il est quelqu'un qui peut me dire ou se trouve le problème et mille merci d'avance
Configuration: Windows XP
Internet Explorer 6.0
Excel 2003

6 réponses

  1. Bonjour,
    J'utilise Excel 2002

    j'ai un probleme similaire, je cherche a realiser une macro qui me permette de realiser une copie incrementee d'une selection de cellulle selon un nombre place dans une autre cellule.

    Plus precisement :

    j'ai la valeur 3 en A1

    j'aimerai faire une copie incrementee des celulles B1:B5 de 3 colonnes donc avoir au final :

    B1:D5

    lorsque j'utilise

    Selection.Autofill Destination :=

    quelque soit la syntaaxe que j'utilise j'0btiens l'erreur 1004.
    Par exemple pour un cas simple de copie incrementee d'une seule cellule :
    Cellule.Autofill Destination:=Cellule.Resize(Range("A1"),1)

    Avez vous des idees sur l'erreur que j'ai pu faire ?

    Merci d'avance
    0
    1. Merci les amis, j'ai essayé la formule de Ivanhoe et ça bien marché,
      tous mes respects à vous tous. eriiic, je vais essayer ta formule aussi bientôt et je vais te répondre.
      Merci encore.
      0
      1. Contributeur
        Bonsoir,

        A mon avis tu as l'erreur car tu as une autre feuille de sélectionnée lorsque tu lances ta macro.
        Commence par Worksheets("Tabscol").select
        ou bien sers toi de l'aide excel si tu ne veux pas la sélectionner
        Set sourceRange = Worksheets("Sheet1").Range("A1:A2")
        Set fillRange = Worksheets("Sheet1").Range("A1:A20")
        sourceRange.AutoFill Destination:=fillRange


        eric
        0
        1. Et comme ça ?

          Sub FormulEtendtre()

          With Worksheets("Tabscol").Range("G12")
          .Formula = "=IF(F12="""","""",YEAR(F12))"
          .AutoFill Destination:=Range("G12:G200"), Type:=xlFillDefault
          End With

          End Sub
          0
          1. merci Ivanhoe, j'ai essayé mais toujours le même le problème et le même message
            0
            1. Bonsoir,
              l'erreur est dans l'adresse de la plage de destination

              Selection.AutoFill Destination:=Range("G12:G"), Type:=xlFillDefault
              est à corriger en
              Selection.AutoFill Destination:=Range("G12:G200"), Type:=xlFillDefault
              (par exemple, pour étendre la formule de G12 jusqu'à G200
              0