RECUPERATION FICHIER BLOQUE

Panda Tsoa

XLDnaute Junior
Bonjour à tous,
Bonjour à tous,
J’ai un fichier ci-joint, j’ai enregistré VBA manuellement comme toujours et le nom du macro tranfert FPD avait un problème a la fermeture du fichier et le fichier ne peut plus être ouvert.
Quelqu’un a de solutions ou peut le rendre utilisable alors que les code VBA sont gardés
MErci
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Panda

Je répète ce qui à été dit maintes fois: écrire un titre en majuscule équivaut à crier; ors, grâce à Dieu, on est pas sourd.

Dans ton fichier tu as 2 macros avec le même nom, il faut modifier. En plus, comme tu as des classeurs externes, impossible de l'utiliser. Mais le fichier chez moi est bien ouvert sans problème.

NOTE: je te conseille de nettoyer tes codes, car avec tous ces SELECT, à la longue tu va faire planter Excel. Un exemple

VB:
Sub transfertFPD()
Dim WbCSB As Workbook, WbOTI As Workbook
Dim ShA As Worksheet, ShB As Worksheet
'
' transfertFPD Macro
' Transférer FPD de CSBF vers situation périodique
'
Set WbCSB = Workbooks("CSBF_CONS_Juin_18.xlsx")
Set WbOTI = Workbooks("Etats déclaratifs éléctroniques OTIVTANA.xls")
Set ShA = WbCSB.Sheets("FPD")
Set ShB = WbOTI.Sheets("FPD")

Application.ScreenUpdating = False
 
   With ShA
           .Range("E10:E13").Copy
   End With
   
   With ShB
           .Range("C10").PasteSpecial Paste:=xlPasteValues
    End With

    With ShA
            .Range("E15:E20").Copy
     End With

   With  ShB
          .Range("C15").PasteSpecial Paste:=xlPasteValues
   End With
End Sub

Faire comme ceci pour toutes les plages à copier.

Si dans les autres classeurs il n'y a pas de mise en forme (cellules en couleurs, gras, bordures etc.)

With ShA
.Range("E10:E13").Copy ShB .Range("C10")
End With
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum Panda Tsoa, Lone-Wolf

On peut aussi ne pas passer par le copier/coller Valeurs seules
Ci-dessous 2 exemples de syntaxe
VB:
Sub test1()
Dim a As Workbook, b As Workbook
Dim aa As Worksheet, bb As Worksheet
Set a = Workbooks("Classeur1")
Set b = Workbooks("Classeur2")
Set aa = a.Sheets(1)
Set bb = b.Sheets(1)
bb.Range("C10:C13").Value = aa.Range("E10:E13").Value
bb.Range("C15:C20").Value = aa.Range("E15:E20").Value
End Sub
Sub test2()
Dim a As Workbook, b As Workbook
Set a = Workbooks("Classeur1"): Set b = Workbooks("Classeur2")
b.Sheets(1).[C10:C13].Value = a.Sheets(1).[E10:E13].Value
b.Sheets(1).[C15:C20].Value = a.Sheets(1).[E15:E20].Value
End Sub

NB: Evidemment, il faudra adapter avec le vrai nom des classeurs et des feuilles.
 
Haut Bas