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

executer macro si ...

  • Initiateur de la discussion Initiateur de la discussion tomatrouge
  • 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 !

T

tomatrouge

Guest
bonjour
j'aimerai que ma macro s'effectue si le nombre de fichier dans un repertoire est différent au nombre d'onglet du document final!
J'envoie un source pour que vous compreniez mieux!!!
merci
 
voila mon code
désolé il est pas passé hier!!!

Code:
Option Explicit
Dim Fichiers As Object, Classeur As Object, N As Integer, I As Integer, Ctr As Integer


Dim ListeClasseurs As New Collection

Dim C As Range
Dim Chemin As String



Sub transfert()

    If [color=#FF0000]Worksheets.Count <> ListeClasseurs.Count[/color] Then
   
    


Columns('A:J').ClearContents
Range('A1').Select

For Ctr = Sheets.Count To 1 Step -1
    If Sheets(Ctr).Name <> ActiveSheet.Name Then
      SendKeys ('{ENTER}')
      Sheets(Ctr).Delete
    End If
    ActiveSheet.Name = 'woalou'
  Next

    Set ListeClasseurs = Nothing
    'Lister les Classeurs du dossier
    Application.ScreenUpdating = False

    Chemin = ThisWorkbook.Path

    Set Fichiers = CreateObject('Scripting.FileSystemObject').getfolder(Chemin).Files
    For Each Classeur In Fichiers
        If Right(Classeur.Name, 3) = 'xls' Then
            If Classeur.Name <> ThisWorkbook.Name Then
                ListeClasseurs.Add Classeur.Name
                
                
            End If
        End If
    Next

    
    ' ATTENTION AUX NOMS DE CLASSEURS ET DE FEUILLES
    
        
    For N = 1 To ListeClasseurs.Count
        Application.EnableEvents = False
        Workbooks.Open Chemin & '\\' & ListeClasseurs(N)
        Application.EnableEvents = True
        With ActiveWorkbook
      
            
    'ATTENTION A LA SELECTION DES CELLULES A COPIER
            
         Range('a1:J65365').Copy
         Workbooks('recensement.xls').Activate
         
         Sheets.Add Worksheets(1)
         ActiveSheet.Name = ListeClasseurs(N)
         Range('a65365').End(xlUp).PasteSpecial
        
      
            
         Application.CutCopyMode = False
         .Close True
            
        
          
            
        
            
        End With
    Next N
    SendKeys ('{ENTER}')
    Sheets(Worksheets.Count).Delete
    
    'tri des onglets par ordres alpha
     
     On Error Resume Next
  Dim I As Integer, J As Integer
  
  For I = 1 To Sheets.Count
    For J = 1 To I - 1
      If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then
        Sheets(I).Move Sheets(J)
        Exit For
      End If
    Next J
  
  Next I
  
  Else
     Exit Sub
  
   End If
 
End Sub

la o&ugrave; c'est rouge , c'est la ma condition!mais je ne sais pas si elle eest bonne !!!en tout cas elle marche pas!!!

Sir_tom
 
sir_tom_2_korn écrit:

Bonjour sir_torm_2_korn

Pas si simple ton affaire, surtout qu'on voit que du code pas l'idée derrière.
😉

La partie que tu conte le nombre de fichier peut se remplacer par ceci qui pourrait etre mieux. Je dis bien pourrais. Regarde aussi ce que j'ai marqué en commentaire aussi.

Code:
Chemin = ThisWorkbook.Path ' Critique comme facon de faire. C'est relatif
    With Application.FileSearch
        .LookIn = Chemin
        .Filename = '*.xls'
        .FileType = msoFileTypeAllFiles
        .Execute
        intNb_Files = .FoundFiles.Count
        
        For intFile_Item = 1 To intNb_Files Step 1
            If .FoundFiles(intFile_Item) <> ThisWorkbook.Name Then
                 ListeClasseurs.Add .FoundFiles(intFile_Item)
            End If
        Next intFile_Item
    End With

re vérifier aussi les endroit ou tu assume d'etre sur le bon classeur ou la bonne feuille.
ex:Range('a1:J65365').Copy tu ne pointe sur aucune feuille ni classeur.

Je te dis tout ça parce que je ne sais pas quel est la source de l'erreur. Je ne connais que l'endroit dans le code.

Je te laisse la dessus. Mais j'attend te tes nouvelles.


Philippe
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
240
Réponses
10
Affichages
402
Réponses
15
Affichages
515
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…