Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/09/2011, 17h35   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut erreur 400 sur macro

Bonjour,

Je suis confronté à une erreur que je ne arvient pas à résoudre, en effet je cherche à remplir automatiquement une colone pour un export Excel->texte.
Je rencontre une "erreur 400" au moment où je veux entrer une matrice vba dans Excel.

Mon code est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Function export(ligne)
Dim j As Integer, h As Integer
Dim T(1 To 8763, 1 To 1) As Double
For j = 0 To 364
For h = 1 To 24
T((j * 24 + h), 1) = Sheets("Ventilation").Cells(19 + h, 11)
Next h
Next j
T(8761, 1) = 4
T(8762, 1) = Range("id")
T(8763, 1) = 0
'l'erreur à la ligne suivante :
Sheets("Export").Range(Cells(ligne, 1), Cells(ligne + UBound(T, 1), 1)) = T
Range("id") = Range("id") + 1
 
End Function
Lorsque je supprime Sheets("Export"), je n'ai plus d'erreur cependant T n'est pas entrée dans la feuille "Ventilation"... La feuille "Export" existe cependant bien et est correctement orthographiée...

Voilà. Je continue à chercher en attendant une aide du forum.

Cordialement,
letienne
letienne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 18h05   #2
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
Bonjour letienne,

peut-être

Code :
1
2
3
with Sheets("Export")
.Range(.Cells(ligne, 1), .Cells(ligne + UBound(T, 1) -1, 1)) = T
end with
Ceci dit, tu aurais du faire une Sub plutôt qu'une Function, une fonction renvoie une valeur (unique), et ce n'est pas le cas de ton code
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h23.


 
 
 
 
Partenaires

Hébergement Web