web-dev-qa-db-fra.com

Erreur d'exécution '1004' - Échec de la méthode 'Plage' de l'objet'_Global '

J'ai un problème dans VBA avec une ligne renvoyant une erreur.

Ce que la macro est destinée à faire est de trouver une cellule particulière puis d'y coller des données.

Le code est le suivant:

'To find Column of Customer imput
For Each cell In Range("B4:M4")

        If cell.Value = strLeftMonth Then
            DataImportColumn = cell.Column

        End If

Next


For Each cell In Worksheets("data customer monthly 2013").Range("A3:A9999")

'First Customer
If cell.Value = strFirstCustomer Then
        DataImportRow = cell.Row

    Range(DataImportColumn & DataImportRow).Offset(0, 2).Value = iFirstCustomerSales ****
End If

Après avoir exécuté le code ci-dessus; Le code se bloque donnant le 1004 run-time error sur le asterisk'd ligne. DataImportColumn a également une valeur de 7 et DataImportRow a une valeur de 5.

Maintenant, ma préoccupation est que les colonnes ne sont pas référencées comme des chiffres mais comme des lettres, il doit donc être que mon code ne puisse jamais fonctionner car c'est une référence terrible.

Quelqu'un a-t-il des suggestions sur la façon dont je peux faire fonctionner ce qui précède?

4
s0up2up

La valeur de votre plage est incorrecte. Vous faites référence à la cellule "75" qui n'existe pas. Vous voudrez peut-être utiliser la notation R1C1 pour utiliser facilement les colonnes numériques sans avoir besoin de les convertir en lettres.

http://www.bettersolutions.com/Excel/EED883/YI416010881.htm

Range("R" & DataImportRow & "C" & DataImportColumn).Offset(0, 2).Value = iFirstCustomerSales

Cela devrait résoudre votre problème.

4
ApplePie

Changement

Range(DataImportColumn & DataImportRow).Offset(0, 2).Value

à

Cells(DataImportRow,DataImportColumn).Value

Lorsque vous n'avez que la ligne et la colonne, vous pouvez utiliser l'objet cells(). La syntaxe est Cells(Row,Column)

Aussi une astuce de plus. Vous voudrez peut-être qualifier entièrement votre objet Cells. par exemple

ThisWorkbook.Sheets("WhatEver").Cells(DataImportRow,DataImportColumn).Value
3
Siddharth Rout