problème de portabilité versions excel - VB/VBA/VBS - Programmation
MarshPosté le 11-08-2004 à 08:23:01
Bonjour à tous,
J'ai récemment créé un classeur qui manipule des données trés nombreuses à partir d'un fichier texte par du code vba excel.
Grosso modo, en voici l'esprit : 1) j'ouvre un fichier texte contenant 5 colonnes (colonne1 : standard, colonne2 : standard, colonne3 : #0.00, colonne4 : date et colonne5 : date). 2) je stocke l'ensemble du fichier dans une matrice: Dim col(10000, 1 To 5) As Variant 3) je recopie sur mon classeur les 5 premières colonnes et effectue un calcul de soustraction pour évaluer un délai entre la colonne 5 et 4, tel que :
For i = 1 To nb Range("A" & i + 2).Value = col(i, 1) Range("A" & i + 2).BorderAround Weight:=xlThin Range("A" & i + 2).HorizontalAlignment = xlCenter Range("B" & i + 2).Value = col(i, 2) Range("B" & i + 2).BorderAround Weight:=xlThin Range("B" & i + 2).HorizontalAlignment = xlCenter Range("C" & i + 2).Value = col(i, 3) Range("C" & i + 2).BorderAround Weight:=xlThin Range("C" & i + 2).NumberFormat = "#,##0.00" Range("D" & i + 2).Value = col(i, 4) Range("D" & i + 2).BorderAround Weight:=xlThin Range("D" & i + 2).HorizontalAlignment = xlCenter Range("E" & i + 2).Value = col(i, 5) Range("E" & i + 2).BorderAround Weight:=xlThin Range("E" & i + 2).HorizontalAlignment = xlCenter Range("F" & i + 2).Value = col(i, 5) - col(i, 4) Range("F" & i + 2).BorderAround Weight:=xlThin Range("F" & i + 2).HorizontalAlignment = xlCenter
Next
Ce code passe impeccable sur Excel version < 2003 mais dès qu'il est exécuté sur cette version, il me retourne un message d'erreur "erreur d'exécution 13' incompatibilité de type !! Quelqu'un peut m'expliquer ce bug et la façon de le contourner SVP car je ne pige pas !!
Merci d'avance, Gaston53.
Message édité par gaston53 le 11-08-2004 à 09:42:50
Marsh Posté le 11-08-2004 à 08:23:01
Bonjour à tous,
J'ai récemment créé un classeur qui manipule des données trés nombreuses à partir d'un fichier texte par du code vba excel.
Grosso modo, en voici l'esprit :
1) j'ouvre un fichier texte contenant 5 colonnes (colonne1 : standard, colonne2 : standard, colonne3 : #0.00, colonne4 : date et colonne5 : date).
2) je stocke l'ensemble du fichier dans une matrice: Dim col(10000, 1 To 5) As Variant
3) je recopie sur mon classeur les 5 premières colonnes et effectue un calcul de soustraction pour évaluer un délai entre la colonne 5 et 4, tel que :
For i = 1 To nb
Range("A" & i + 2).Value = col(i, 1)
Range("A" & i + 2).BorderAround Weight:=xlThin
Range("A" & i + 2).HorizontalAlignment = xlCenter
Range("B" & i + 2).Value = col(i, 2)
Range("B" & i + 2).BorderAround Weight:=xlThin
Range("B" & i + 2).HorizontalAlignment = xlCenter
Range("C" & i + 2).Value = col(i, 3)
Range("C" & i + 2).BorderAround Weight:=xlThin
Range("C" & i + 2).NumberFormat = "#,##0.00"
Range("D" & i + 2).Value = col(i, 4)
Range("D" & i + 2).BorderAround Weight:=xlThin
Range("D" & i + 2).HorizontalAlignment = xlCenter
Range("E" & i + 2).Value = col(i, 5)
Range("E" & i + 2).BorderAround Weight:=xlThin
Range("E" & i + 2).HorizontalAlignment = xlCenter
Range("F" & i + 2).Value = col(i, 5) - col(i, 4)
Range("F" & i + 2).BorderAround Weight:=xlThin
Range("F" & i + 2).HorizontalAlignment = xlCenter
Next
Ce code passe impeccable sur Excel version < 2003 mais dès qu'il est exécuté sur cette version, il me retourne un message d'erreur "erreur d'exécution 13' incompatibilité de type !!
Quelqu'un peut m'expliquer ce bug et la façon de le contourner SVP car je ne pige pas !!
Merci d'avance, Gaston53.
Message édité par gaston53 le 11-08-2004 à 09:42:50