Transfert des Données d'une feuille excel par un tableau: Problème avec les cell

kurada Messages postés 3 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009 - 17 nov. 2009 à 14:21
kurada Messages postés 3 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009 - 18 nov. 2009 à 10:37
Bonjour,

J'ai une petite application qui copie une feuille excel dans un autre fichier en passant par un tableau. Mais l'appication plante lorsqu'une valeur d'une cellule commence par le signe egal comme "=>0.3um". J'ai une erreure de "type". Si j'efface le signe egal tout marche bien. Si j'utilise la fonction copy et paste tout marche bien aussi mais je trouve que l'idée de passer par un tableau est bonne... Je pense que c'est plus rapide. Est ce que vous auriez des conseils à me donner?

Merci d'avance
Daniel

Ci-dessous le code que j'utilise

Sub ImportData()
Dim nbRow As Integer
Dim xls As Excel.Workbook
Dim tab1() As Variant
Dim fs As Object

Set fs = CreateObject("Scripting.FileSystemObject")
Sheets("Data").Range("A2:AN10000").ClearContents

If fs.FileExists(Worksheets("Param").Range("ProxySource").Cells) Then
Set xls = GetObject(Sheets("Param").Range("ProxySource").Value)
nbRow = xls.Sheets("report").Range("B65536").End(xlUp).Row
xls.Sheets("report").Activate
tab1 = Range("A2:AN" & nbRow)
xls.Close False, , False
Set xls = Nothing
Sheets("Data").Range("A2:AN" & nbRow).Value = tab1
End If
End Sub

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 nov. 2009 à 21:17
Salut
Oui, c'est normal : un = endébut de texte de cellule signifie que Excel doit faire un calcul, alors qu'il ne s'agit que d'un texte.
Ajoute une apostrophe devant ton texte pour lui imposer le type texte : '=>0.3um

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
kurada Messages postés 3 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009
18 nov. 2009 à 09:18
Merci Jack,

J'avais réussi à comprendre et j'ai rajouté du code pour modifier le contenu de ces cellules. Mais je ne trouve pas que cela est très efficace... N'y aurait-il pas une autre solution?

Enfin cela reste du VBA excel donc cela ne peut pas être parfait .
Merci pour tout .

Daniel
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 nov. 2009 à 10:31
pas efficace ?
Soit tu as une erreur, soit tu n'en as plus.
Sur quelle ligne as-tu cette erreur ?
Pourquoi passer par un tableau alors que tu as les deux feuilles à disposition ? C'est inutile
Ce qui m'épate, c'est le Dim xls As Excel.Workbook : Pourquoi dimensionner une telle variable alors que tu es déjà dans Excel ?
Pourquoi ne pas faire directement
  Sheets("report").Activate 
  Sheets("report").Range("A2:AN" & nbRow).Copy
  Sheets("Data").Range("A2").Paste

A l'avenir, essai d'utiliser la coloration syntaxique pour présenter du code = plus facile à lire (3ème icone à partir de la droite)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
kurada Messages postés 3 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009
18 nov. 2009 à 10:37
Merci Jack,

Je vais en effet aller au plus simple ... Je croix que je fais trop compliqué sans raison valable.

Daniel
0
Rejoignez-nous