Problème d'execution de macro dans plusieurs classeurs

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 :D
 
C

Compte Supprimé 979

Guest
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+
 
C

Compte Supprimé 979

Guest
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+
 

Discussions similaires

Réponses
11
Affichages
304
Réponses
0
Affichages
157

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS