Macro - ajouter du code pour automatiser la réponse à une fenêtre de message!

  • Initiateur de la discussion Initiateur de la discussion RW02
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RW02

XLDnaute Nouveau
Bonjour,
Grâce aux forumers ExcelDownloads, j'ai pu obtenir la macro suivante qui fonctionne parfaitement bien, à un détail près et qui s'avère un peu gênant au fil du temps !!!
Cette macro sert à copier des lignes contenues dans différentes feuilles de différents classeurs contenus dans un même dossier. A chaque fois que je lance la macro, j'ai le message ci-dessous qui apparait et que je dois valider par OUI. Est-il possible d'intégrer du code dans la macro pour automatiser ce clic sur le OUI ?
Merci d'avance pour vos réponses
Bien cordialement,
Régis

upload_2016-9-14_16-47-5.png


Sub Synthese_Fichiers()
Dim Chemin As String, Fichier As String, Synthese As String
Dim wSynthese As Workbook, wFichier As Workbook
Dim Feuilles
Dim i As Long, j As Long, c

'Définit le répertoire d'origine des fichiers (identique pour la synthèse et les autres)
Chemin = ThisWorkbook.Path
Fichier = Dir(Chemin & "\*.xlsx")
Synthese = ThisWorkbook.Name

'Définit la variable classeur
Set wSynthese = ThisWorkbook
Feuilles = Array("PQF1", "PQF2", "PQF3", "PQF4", "PQF5", "PQF6_a", "PQF6_b", "PQF6_c", "PQF8", "PQF9")

'Boucle sur tous les fichiers du répertoire
'On vérifie que le nom du fichier est différent de celui de synthèse
'Et que le fichier dispose bien d'un nom
Do While Fichier <> Synthese And Len(Fichier) > 0
'On ouvre le fichier et on définit la variable
Workbooks.Open (Chemin + "\" + Fichier): Set wFichier = ActiveWorkbook
'On boucle chaque feuille du classeur
For Each c In Feuilles
'On définit la dernière ligne de chaque onglet
i = wSynthese.Sheets(c).[d65000].End(xlUp).Row + 1 '+1 pour coller après la dernière ligne
j = wFichier.Sheets(c).[d65000].End(xlUp).Row
'On vérifie que la dernière ligne (j) soit supérieure à 5 et on copie colle les lignes
'Sinon on passe à la prochaine étape
If j > 5 Then wFichier.Sheets(c).Rows("6:" & j).Copy wSynthese.Sheets(c).Cells(i, "a")
Next c
'On ferme le classeur ouvert
wFichier.Close False
Fichier = Dir()
Loop

'A conserver si tu le souhaites seulement
With wSynthese
For Each c In Feuilles
j = 1
For i = 6 To .Sheets(c).[a65000].End(xlUp).Row Step 2
.Sheets(c).Cells(i, "a").Value = j
j = j + 1
Next i
Next c
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
487
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
Réponses
3
Affichages
599
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
639
Réponses
9
Affichages
385
Réponses
3
Affichages
523
Retour