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

Workbooks ne fonctionne pas lorsque le fichier est fermé

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

K

kd13

Guest
Bonjour

je suis entrain de faire un petit script pour faire la somme des cellules qui existe dans un classeur excel "Source.xls"

et l'afficher dans un autre classeur "dest.xls"

le script marche parfaitement juste lorsque le fichier source est ouvert (c'est a dire je dois ouvrir le fichier )sinon il m'affiche une erreur
j'aimerais bien que vous m'aidez , Merci !

Sub MIS()
somme = 0

DerniereLigne1 = Workbooks("source.xls").Worksheets("Sheet0").Range("A1").CurrentRegion.End(xlDown).Row
For x = 1 To 12
For i = 2 To DerniereLigne1
If (Workbooks("source.xls").Worksheets("Sheet0").Range("A" & i).Value = "Confirmed" Or Workbooks("source.xls").Worksheets("Sheet0").Range("A" & i).Value = "Shipped" Or _
Workbooks("source.xls").Worksheets("Sheet0").Range("A" & i).Value = "Planned" Or Workbooks("source.xls").Worksheets("Sheet0").Range("A" & i).Value = "At Risk" Or _
Workbooks("source.xls").Worksheets("Sheet0").Range("A" & i).Value = "Delayed") And _
Workbooks("source.xls").Worksheets("Sheet0").Range("C" & i).Value = x And _
Workbooks("source.xls").Worksheets("Sheet0").Range("G" & i).Value = "TN" Then
somme = somme + Workbooks("source.xls").Worksheets("Sheet0").Range("AO" & i).Value
End If
Next i
col = Chr(98 + x)
Workbooks("Dest.xlsm").Worksheets("TUNISIA").Range(col & "6") = somme / 1000
somme = 0
Next x
End Sub
 
Re : Workbooks ne fonctionne pas lorsque le fichier est fermé

Bonjour,
Je pense qu'il serait plus simple en VBA d'ouvrir le classeur source, d'effectuer la procédure et le refermer sans enregistrement.
Suggestion de code A ADAPTER :
Code:
Sub test()
   Application.ScreenUpdating = False
   Workbooks.Open Filename:="D:\....\Source.xls"
   '  procédure
   Set Source = Workbooks("source.xls").Worksheets("Sheet0")
   Set Dest = Workbooks("Dest.xlsm").Worksheets("TUNISIA")
   
   DerniereLigne1 = Source.Range("A1").CurrentRegion.End(xlDown).Row
   somme = 0
   For x = 1 To 12
      For i = 2 To DerniereLigne1
         Ax = Source.Range("A" & i)
         Cx = Source.Range("C" & i)
         Gx = Source.Range("G" & i)
         
         If (Ax = "Confirmed" Or Ax = "Shipped" Or Ax = "Planned" Or Ax = "At Risk" Or _
            Ax = "Delayed") And Cx = x And Gx = "TN" Then
            
            somme = somme + Source.Range("AO" & i)
         End If
      Next i
      col = Chr(98 + x)
      Dest.Range(col & "6") = somme / 1000
      somme = 0
   Next x
   
   ' fermer la source
   Workbooks("Source.xls").Close SaveChanges:=False
   Application.ScreenUpdating = True
End Sub

Salutations
Robert
 
- 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

J
Réponses
6
Affichages
2 K
K
Réponses
2
Affichages
858
K
N
  • Question Question
Réponses
5
Affichages
3 K
M
Réponses
0
Affichages
905
mohamed driss
M
F
Réponses
2
Affichages
1 K
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…