Erreur 1004 aléatoire
Résolu
Wilhelm_Hort
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Wilhelm_Hort Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Wilhelm_Hort Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Encore moi ^^
Toujours dans la saga "je cherche à finir ce *%*£# de système VBA, j'en suis sur le finish, mais là, c'est contrariant.
En gros, ma macro récupère une plage de 23 lignes de données dans chaque rapport, extension .xlsx, (à savoir que les 23 lignes ne sont pas forcément remplies, mais ensuite, j'efface les lignes vides), retourne dans mon fichier récapitulatif, et les colle ...
Mais, aléatoirement, de temps à autre, il me colle une erreur 1004, soit Paste, soit Select (désolé, je n'ai plus l'intitulé exact, il ne veut plus me reproduire la panne ^^)
Pour info, je suis sur Excel 2010.
Merci à tous pour votre patience ;)
EDIT: Précision du langage dans la coloration syntaxique.
Toujours dans la saga "je cherche à finir ce *%*£# de système VBA, j'en suis sur le finish, mais là, c'est contrariant.
En gros, ma macro récupère une plage de 23 lignes de données dans chaque rapport, extension .xlsx, (à savoir que les 23 lignes ne sont pas forcément remplies, mais ensuite, j'efface les lignes vides), retourne dans mon fichier récapitulatif, et les colle ...
Mais, aléatoirement, de temps à autre, il me colle une erreur 1004, soit Paste, soit Select (désolé, je n'ai plus l'intitulé exact, il ne veut plus me reproduire la panne ^^)
Pour info, je suis sur Excel 2010.
Merci à tous pour votre patience ;)
Dim rapportlu As String rapportlu = Dir("C:\Users\MANIERY\Desktop\Rapports journaliers\*.xlsx") While Len(rapportlu) > 0 'Annule toutes les alertes Excel Application.DisplayAlerts = False 'Nom du fichier chargé' fichiercharge.Caption = rapportlu Me.Repaint On Error GoTo 0 Workbooks.Open rapportlu Workbooks(rapportlu).Sheets("Visualisation").Range("A2:Q25").Copy Workbooks(rapportlu).Close Workbooks(recap).Activate Sheets("Production").Range("A" & k & ":Q" & k + 23).Select ActiveSheet.Paste Application.CutCopyMode = False 'On réincrémente le compteur de lignes du maximum d'occurences possibles' k = k + 23 'Restaure l'affichage des Alertes Application.DisplayAlerts = True rapportlu = Dir Wend
EDIT: Précision du langage dans la coloration syntaxique.
A voir également:
- Erreur 1004 aléatoire
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
2 réponses
Bonjour,
Le "On Error Goto 0", je l'ai passé en "Resume Next" De quelle erreur parlez-vous ???????????????????????
copie valeurs, inverser les membres du egal voir code
si 23 lignes a copier: Range("A2:Q24") pas 25
Le "On Error Goto 0", je l'ai passé en "Resume Next" De quelle erreur parlez-vous ???????????????????????
copie valeurs, inverser les membres du egal voir code
si 23 lignes a copier: Range("A2:Q24") pas 25
Sub test() Dim rapportlu As String 'ChDrive ("D") 'ChDir ("D:\_ACSV1") 'rapportlu = Dir("D:\_ACSV1\*.xlsx") rapportlu = Dir("C:\Users\MANIERY\Desktop\Rapports journaliers\*.xlsx") k = 1 While rapportlu <> "" 'Annule toutes les alertes Excel Application.DisplayAlerts = False Application.ScreenUpdating = False 'Nom du fichier chargé' fichiercharge.Caption = rapportlu Me.Repaint Workbooks.Open rapportlu ThisWorkbook.Sheets("Production").Range("A" & k & ":Q" & k + 22) = Workbooks(rapportlu).Sheets("feuil1").Range("A2:Q24").Value Workbooks(rapportlu).Close 'On réincrémente le compteur de lignes du maximum d'occurences possibles' k = k + 23 'Restaure l'affichage des Alertes rapportlu = Dir Wend Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
PS : désolé de la réponse tardive ;)
Si l'erreur se represente, clic sur debugage, passez le curseur souris sur la variable k pour voir son contenu.
Le "On Error Next", ça pourrait faire quelque chose ?
Non, il vaut mieux traiter l'erreur, avec ce code devrait aller. Si toujours l'erreur, il faudra mettre une temporisation entre deux ouvertures de fichier, mais essayez ceci:
Par contre si classeur Recap n'est pas le classeur du code VBA, modifiez la ligne de copy
En gros, on pioche dans les rapports lus des valeurs synthétisées dans l'onglet "Visualisation". Le nombre d'occurrences ne dépasse jamais 23 d'où l'incrémentation de 23 à chaque boucle.
Il me faut donc une propriété spéciale pour la copie des valeurs uniquement. Un specialpaste ?
Le "On Error Goto 0", je l'ai passé en "Resume Next", pour justement sauter les erreurs ^^
Cependant, cette méthode de Copy semble augmenter la rapidité d'execution de la commande.