Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème d'execution de macro dans plusieurs classeurs

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 !

pledger

XLDnaute Junior
Bonjours à tous 🙂

Je vous contact car j'ai un petit soucis d’exécution de cette macro dans tous mes classeurs . Elle marche si je l’exécute seulement dans un classeur.

Code:
Sub Macro12()
'
' Macro12 Macro
'
' Touche de raccourci du clavier: Ctrl+n
Dim wb As Workbook
For Each wb In Workbooks

If wb.Name Like "Analyse*" Then

wb.Sheets("Feuil1").Select
wb.Sheets("Feuil1").Move Before:=Sheets(1)
wb.Sheets("Concaténation").Select

    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

wb.Sheets("Feuil1").Select
wb.Sheets("Feuil1").Move Before:=Sheets(1)
    

monID = 0
j = 1
k = 1
derniereLigne = wb.Sheets(1).Range("B65536").End(xlUp).Row
For i = 1 To derniereLigne
    If wb.Sheets(1).Cells(i, 1).Value <> "" Then
        monID = monID + 1
        valeur = Sheets(1).Cells(i, 1).Value
     wb.Sheets(2).Cells(j, 1).Value = monID
    wb.Sheets(2).Cells(j, 2).Value = Sheets(1).Cells(i, 1).Value
        j = j + 1
    End If
    wb.Sheets(3).Cells(k, 1).Value = monID
   wb.Sheets(3).Cells(k, 2).Value = Sheets(1).Cells(i, 2).Value
    k = k + 1
Next
wb.Sheets(2).Name = "Danger"
wb.Sheets(3).Name = "Mesure"


End If
Next wb

 
End Sub

Et je voulais savoir également : mon Id =0 . Imaginons que mon premier classeur termine à 800 , le deuxième va-t-il commencer à 801 ou bien à 1 ?

Merci d'avance et merci au forum 😀
 
Re : Problème d'execution de macro dans plusieurs classeurs

Bonjour Pledger,

Je vous contact car j'ai un petit soucis d’exécution de cette macro dans tous mes classeurs . Elle marche si je l’exécute seulement dans un classeur.
A part le code non optimisé, je ne vois pas ce qui pourrait clocher !?

Et je voulais savoir également : mon Id =0 . Imaginons que mon premier classeur termine à 800 , le deuxième va-t-il commencer à 801 ou bien à 1 ?
Tu réinitialise ta variable dans ta boucle, donc au 2ème classeur MonId=0

A+
 
Re : Problème d'execution de macro dans plusieurs classeurs

Re,

Essaye peut-être ceci
VB:
Sub Macro12()
  Dim wb As Workbook, I As Long, J As Long, K As Long
  Dim DerniereLigne As Long, MaValeur
  Dim MonID As Long
  '
  ' Touche de raccourci du clavier: Ctrl+n
  ' Initialisation des variables ICI pour éviter la remise à ZERO
  MonID = 0: J = 1: K = 1
  ' Pour chaque classeur
  For Each wb In Application.Workbooks
    ' Initialisation des variables ICI pour remise à ZERO
    ' MonID = 0: J = 1: K = 1
    If wb.Name Like "Analyse*" Then
      wb.Activate
      wb.Sheets("Feuil1").Move Before:=Sheets(1)
      wb.Sheets("Concaténation").Columns("A:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
      wb.Sheets("Feuil1").Move Before:=Sheets(1)
      DerniereLigne = wb.Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
      For I = 1 To DerniereLigne
        If wb.Sheets(1).Cells(I, 1).Value <> "" Then
          MonID = MonID + 1
          MaValeur = Sheets(1).Cells(I, 1).Value
          wb.Sheets(2).Cells(J, 1).Value = MonID
          wb.Sheets(2).Cells(J, 2).Value = Sheets(1).Cells(I, 1).Value
          J = J + 1
        End If
        wb.Sheets(3).Cells(K, 1).Value = MonID
        wb.Sheets(3).Cells(K, 2).Value = Sheets(1).Cells(I, 2).Value
        K = K + 1
      Next
      wb.Sheets(2).Name = "Danger"
      wb.Sheets(3).Name = "Mesure"
    End If
  Next wb
End Sub

A+
 
- 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
4
Affichages
186
Réponses
8
Affichages
235
Réponses
8
Affichages
472
Réponses
18
Affichages
318
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
176
Réponses
3
Affichages
668
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…