Erreur 1004 aléatoire
Résolu/Fermé
Wilhelm_Hort
Messages postés
17
Date d'inscription
dimanche 28 juin 2015
Statut
Membre
Dernière intervention
31 août 2015
-
Modifié par Whismeril le 25/07/2015 à 07:44
Wilhelm_Hort Messages postés 17 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015 - 31 juil. 2015 à 20:43
Wilhelm_Hort Messages postés 17 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 31 août 2015 - 31 juil. 2015 à 20:43
2 réponses
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
25 juil. 2015 à 09:04
25 juil. 2015 à 09:04
Bonjour,
la variable k est definie ou et a quelle valeur de depart
la variable k est definie ou et a quelle valeur de depart
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
Modifié par f894009 le 31/07/2015 à 09:31
Modifié par f894009 le 31/07/2015 à 09:31
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
Wilhelm_Hort
Messages postés
17
Date d'inscription
dimanche 28 juin 2015
Statut
Membre
Dernière intervention
31 août 2015
31 juil. 2015 à 20:43
31 juil. 2015 à 20:43
Ouah !!! Purée, la vitesse d'execution de ta macro !
Franchement nickel, c'est exactement ça. Mille mercis pour ton aide, camarade ! Je passe en résolu
Franchement nickel, c'est exactement ça. Mille mercis pour ton aide, camarade ! Je passe en résolu
27 juil. 2015 à 22:48
PS : désolé de la réponse tardive ;)
28 juil. 2015 à 09:28
Si l'erreur se represente, clic sur debugage, passez le curseur souris sur la variable k pour voir son contenu.
30 juil. 2015 à 03:24
Le "On Error Next", ça pourrait faire quelque chose ?
Modifié par f894009 le 30/07/2015 à 08:40
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
Dim rapportlu As String '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 'On Error GoTo 0 ' ???????????????????????????????????? Workbooks.Open rapportlu Workbooks(rapportlu).Sheets("feuil1").Range("A2:Q25").Copy ThisWorkbook.Sheets("Production").Range("A" & k & ":Q" & k + 23) Workbooks(rapportlu).Close 'On réincrémente le compteur de lignes du maximum d'occurences possibles' k = k + 25 'pourquoi 23 ???????????? vous ecrasez des lignes 'Restaure l'affichage des Alertes rapportlu = Dir Wend Application.DisplayAlerts = True Application.ScreenUpdating = True30 juil. 2015 à 22:30
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.