[Catégorie modifiée .Net -> VBA] Macro Excel 2003

sparo1 Messages postés 4 Date d'inscription lundi 10 octobre 2011 Statut Membre Dernière intervention 8 juillet 2017 - 10 oct. 2011 à 12:50
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 10 oct. 2011 à 16:55
bonjour ,

Sub ConsoSloi()
' Efface et consolide un fichier 1 a partir d'autres fichier présentes dans le répertoire
' Les nomns de fichiers doivent contenir une chaine de caracteres connu ex: ABC
' Déclaration des variables entières de boucle
Dim i As Integer
Dim v As Integer
Dim j As Integer

'Declaration des classeurs folders et chaines associées
Dim Wk As Object
Dim rep As Object
Dim Chemin As String
Dim Fichier As String


ThisWorkbook.Activate
Chemin = ThisWorkbook.Path
Set rep = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)

v = 3

For Each Wk In rep.Files
If Wk.Name <> ThisWorkbook.Name Then
If InStr(Wk.Name, "SLOI") <> 0 Or InStr(Wk.Name, "SLI") <> 0 Or InStr(Wk.Name, "OIL") <> 0 Then
Fichier = Chemin & "" & Wk.Name
Workbooks.Open Fichier
Workbooks(Wk.Name).Activate
For i = 3 To 10000
If IsEmpty(Workbooks(Wk.Name).Sheets(1).Cells(i, 3)) Then Exit For
For j = 2 To 34
ThisWorkbook.Sheets(1).Cells(v, j) = Workbooks(Wk.Name).Sheets(1).Cells(i, j)
Next j
v = v + 1
Next i
ActiveWorkbook.Close SaveChanges:=False
End If
End If
Next

For i = v To 10000
If IsEmpty(ThisWorkbook.Sheets(1).Cells(i, 3)) Then Exit For
For j = 2 To 34
ThisWorkbook.Sheets(1).Cells(v, j) = ""
Next j
Next i


ThisWorkbook.Activate

End Sub


Le message d'erreur :

>>>>>>erreur d'execution "1004"
erreur définie par l'application ou par l'objet<<<<<<

Le probleme se situe à la ligne :

<gras>ThisWorkbook.Sheets(1).Cells(v, j) = Workbooks(Wk.Name).Sheets(1).Cells(i, j)



Merci de m'aider car c'est ma place qui est en jeu :)



j'ai oublié de préciser ce que fait ma MACRO:

Elle consolide plusieurs fichiers excel pour mettre tout le contenu dans un seul fichier, sachant que les ficihiers ont tous la meme forme.

Le hic, c'est qu'il commence à copier et dés qu'il arrive à une cellule qui comporte un nombre de caracteres important, il bug.

Merci mes amis

5 réponses

NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
10 oct. 2011 à 13:17
Bonjour,

Pourquoi ne pas utiliser le copier/coller plutôt, ce serait plus rapide (plusieurs lignes/colonnes d'un coup) et tu t'affranchirais de ce problème.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
10 oct. 2011 à 14:09
Bonjour,
Bien évidemment ! (salut NHenry) .
Et pas besoin de copier/coller ===>>> Copy + destination suffitont


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
sparo1 Messages postés 4 Date d'inscription lundi 10 octobre 2011 Statut Membre Dernière intervention 8 juillet 2017
10 oct. 2011 à 14:30
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
10 oct. 2011 à 15:24
Bonjour,

En tant qu' object, Wk n' a pas de propriété Name.
D' ou l' erreur sur Wk.Name ..

Déclares Wk comme WorkBook.

Dim Wk As Excel.Workbook


[] Ce qui va sans dire. va mieux en le disant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
10 oct. 2011 à 16:55
Salut

Le VB de Excel est, dans le cas présent, du VBA, pas du VB.Net
--> Catégorie modifiée

Quand tu colles du code, utilise la coloration syntaxique (3ème icone à droite) = plus facile à relire car conserve les indentations

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