none
Copie d'un Range de cellules dans une feuille nouvellement créée RRS feed

  • Question

  • Bonjour,

    Depuis plusieurs jours, j'essaie désespéremment de copier un Range de cellules provenant d'une feuille existante vers une autre feuille que je crée pour l'occasion et à laquelle j'affecte un nom.
    VBA me sort que la "méthode Range de l'objet Worksheet a échoué", ou même parfois "Objet requis".

    Ici je déclare mes deux nouvelles Worksheet en public :
    Public facturesOK, facturesKO As Excel.Worksheet
    J'affecte un template et un nom aux deux feuilles de destination :
    'Génération des 2 feuilles de Contrôle facture (OK/KO)
        Set facturesOK = Sheets.Add(After:=Sheets(3), Type:=templatesPath + "\FacturesTemplateOK.xlt")
        facturesOK.Name = "Factures OK " + Replace(CStr(Date), "/", ".")
        Set facturesKO = Sheets.Add(After:=Sheets(4), Type:=templatesPath + "\FacturesTemplateKO.xlt")
        facturesKO.Name = "Factures KO " + Replace(CStr(Date), "/", ".")
    puis je boucle sur les lignes de la première feuille afin de dispatcher celles-ci sur les deux autres :
    Select Case Main.RemplirChamps
                Case True
                    'Contrôle OK pour la facture courante : copie dans la feuille de rapport
                    Worksheets("Scan").Range("A" + CStr(i) + ":S" + CStr(i)).Copy facturesOK.Range("A" + CStr(facturesOKIndex) + ":S" + CStr(facturesOKIndex))
                    facturesOKIndex = facturesOKIndex + 1
                Case False
                    'Contrôle KO pour la facture courante : copie dans la feuille de rapport
                    Worksheets("Scan").Range("A" + CStr(i) + ":S" + CStr(i)).Copy facturesKO.Range("A" + CStr(facturesKOIndex) + ":S" + CStr(facturesKOIndex))
                    facturesKOIndex = facturesKOIndex + 1
            End Select
    Et c'est là où je ne comprend plus : la copie semble marcher dans le case "true", par contre, elle semble bloquer sur la référence de la worksheet "facturesKO" (gras souligné). On dirait seulement qu'il ne comprend pas à quelle feuille je fais référence.
    Ce qui est surprenant, c'est que je peux modifier des cellules de cette feuille sans problème...

    Votre aide est la bienvenue !

    Merci d'avance

    Etienne
    Etienne
    vendredi 26 février 2010 10:34

Réponses

  • Bonjour Danielco et merci de ta réponse.

    En fait, le problème est résolu : le souci venait de la boucle qui ajoute les lignes aux deux worksheets, disons que le Next était situé un peu loin...:(

    Bonne journée
    Etienne
    • Marqué comme réponse Etienne J vendredi 26 février 2010 13:11
    vendredi 26 février 2010 13:11

Toutes les réponses

  • Bonjour.

    Ajoute les deux msgboxes devant la ligne en erreur et poste les valeurs affichées :

                    MsgBox i
                    MsgBox facturesKOIndex
                    Worksheets("Scan").Range("A" + CStr(i) + ":S" + CStr(i)).Copy _
                        facturesKO.Range("A" + CStr(facturesKOIndex) + ":S" + CStr(facturesKOIndex))

    Cordialement.
    Daniel
    vendredi 26 février 2010 11:07
  • Bonjour Danielco et merci de ta réponse.

    En fait, le problème est résolu : le souci venait de la boucle qui ajoute les lignes aux deux worksheets, disons que le Next était situé un peu loin...:(

    Bonne journée
    Etienne
    • Marqué comme réponse Etienne J vendredi 26 février 2010 13:11
    vendredi 26 février 2010 13:11