Sly le globe trotter
XLDnaute Occasionnel
Bonjour à tous,
je suis confronté à des soucis quelque peu curieux et ne parviens pas à identifier la cause de mes tourments. Peut être pourrez-vous m'aider
J'ai un fichier Excel rempli de macro que j'utilise depuis plusieurs années pour faire des bilans mensuels. Jusqu'ici tout va bien et tout marchait très bien.
En voulant l'utiliser aujourd'hui, ça coince et je ne vois pas pourquoi sachant qu'encore une fois, à part des mises à jour automatiques, rien de changé sur mon PC et encore moins dans les macros du fichier...
A l’exécution du code vba, depuis un bouton du fichier Excel, la fenêtre vba s'ouvre toute seule et le code est "arrêté" comme si j'avais positionné un point d'arrêt lors de l'appel d'une userform...
Si je relance le code, l’exécution s'arrête à nouveau sur une ligne surprenante...
Si je relance à nouveau, j'ai, semble-t-il, à chaque passage dans la boucle le code qui s'arrête avec un message d'erreur : exécution interrompue. En revacnhe aucun problème si j'exécute le code pas à pas avec la touche F8 !
Voici le code, pour info
Comment cela peut-il ne plus fonctionner alors que tout allait bien il y a encore quelques jours et qu'en exécutatn pas à pas, je n'ai aucun problème ???
Merci pour votre aide,
Sly
je suis confronté à des soucis quelque peu curieux et ne parviens pas à identifier la cause de mes tourments. Peut être pourrez-vous m'aider
J'ai un fichier Excel rempli de macro que j'utilise depuis plusieurs années pour faire des bilans mensuels. Jusqu'ici tout va bien et tout marchait très bien.
En voulant l'utiliser aujourd'hui, ça coince et je ne vois pas pourquoi sachant qu'encore une fois, à part des mises à jour automatiques, rien de changé sur mon PC et encore moins dans les macros du fichier...
A l’exécution du code vba, depuis un bouton du fichier Excel, la fenêtre vba s'ouvre toute seule et le code est "arrêté" comme si j'avais positionné un point d'arrêt lors de l'appel d'une userform...
Code:
Form_ChoixMoisSynth.Show
Si je relance le code, l’exécution s'arrête à nouveau sur une ligne surprenante...
Code:
For j = 12 To Limite
Si je relance à nouveau, j'ai, semble-t-il, à chaque passage dans la boucle le code qui s'arrête avec un message d'erreur : exécution interrompue. En revacnhe aucun problème si j'exécute le code pas à pas avec la touche F8 !
Voici le code, pour info
Code:
Option Explicit
Public Mois As String
Public Annee, i, j As Integer
Public PathSourcePrevYearY, PathSourceYearY, FichierSource As String
Public OngletSource As String
Public OngletDestination As String
Public CelluleSource As String
Public Chemin As String
Sub Main()
Dim wbY, wbPrevY As Workbook
Dim Limite As Integer
OngletDestination = "Synthèse annuelle chiffrée"
Limite = 853
Annee = ThisWorkbook.Sheets(OngletDestination).Cells(2, 2)
Chemin = ThisWorkbook.Sheets(OngletDestination).Cells(3, 2)
If Dir(Chemin, vbDirectory) = "" Then
MsgBox "Le dossier indiqué en cellule B3 n'existe pas", vbOKOnly, "Information"
Exit Sub
End If
Mois = ""
Form_ChoixMoisSynth.Show
Application.ScreenUpdating = False
If Mois <> "" Then
' Recherche de la colonne correspondante dans le fichier de synthèse
For i = 12 To 56 Step 4
If Sheets(OngletDestination).Cells(5, i) = Mois Then
Exit For
End If
Next i
' Construction du nom des chemins des fichiers sources
With Sheets(OngletDestination)
PathSourceYearY = Chemin & Annee & "\" & .Cells(8, i + 3) & "_" & .Cells(9, i + 3) & "_Indicateurs Tests.xlsx"
PathSourcePrevYearY = Chemin & Annee - 1 & "\" & .Cells(6, i + 3) & "_" & .Cells(7, i + 3) & "_Indicateurs Tests.xlsx"
End With
' Importation des données de l'année Y
If PresenceFichier(PathSourceYearY) Then
Set wbY = Workbooks.Open(PathSourceYearY)
For j = 12 To Limite
If ThisWorkbook.Sheets(OngletDestination).Cells(j, 3) <> "" And ThisWorkbook.Sheets(OngletDestination).Cells(j, 6) <> "" Then
' Onglet contenant la donnée à récupérer
OngletSource = ThisWorkbook.Sheets(OngletDestination).Cells(j, 3)
'Adresse de la cellule contenant la donnée à récupérer
CelluleSource = ThisWorkbook.Sheets(OngletDestination).Cells(j, 6)
ThisWorkbook.Sheets(OngletDestination).Cells(j, i + 1) = wbY.Sheets(OngletSource).Range(CelluleSource)
End If
Next j
Application.DisplayAlerts = False
wbY.Close
Application.DisplayAlerts = True
Set wbY = Nothing
Else
MsgBox "Le fichier " & PathSourceYearY & " n'existe pas.", vbOKOnly, "Information"
End If
' Importation des données de l'année Y-1
If PresenceFichier(PathSourcePrevYearY) Then
Set wbPrevY = Workbooks.Open(PathSourcePrevYearY)
For j = 12 To Limite
If ThisWorkbook.Sheets(OngletDestination).Cells(j, 3) <> "" And ThisWorkbook.Sheets(OngletDestination).Cells(j, 6) <> "" Then
' Onglet contenant la donnée à récupérer
OngletSource = ThisWorkbook.Sheets(OngletDestination).Cells(j, 3)
'Adresse de la cellule contenant la donnée à récupérer
CelluleSource = ThisWorkbook.Sheets(OngletDestination).Cells(j, 6)
ThisWorkbook.Sheets(OngletDestination).Cells(j, i) = wbPrevY.Sheets(OngletSource).Range(CelluleSource)
End If
Next j
Application.DisplayAlerts = False
wbPrevY.Close
Application.DisplayAlerts = True
Set wbPrevY = Nothing
Else
MsgBox "Le fichier " & PathSourcePrevYearY & " n'existe pas.", vbOKOnly, "Information"
End If
End If
Application.ScreenUpdating = True
End Sub
Comment cela peut-il ne plus fonctionner alors que tout allait bien il y a encore quelques jours et qu'en exécutatn pas à pas, je n'ai aucun problème ???
Merci pour votre aide,
Sly