Macro : ignorer erreur et s’exécuter correctement
Résolu
noe2008
Messages postés
184
Date d'inscription
Statut
Membre
Dernière intervention
-
noe2008 Messages postés 184 Date d'inscription Statut Membre Dernière intervention -
noe2008 Messages postés 184 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travaille sur une macro , qui importe de données d'un classeur externe composé de plusieurs feuille : sheet1, sheet2 ......
ma macro gère correctement un classeur externe composé de 12 feuilles c'est a dire de sheet1 jusqu'a sheet12
mais le problème c-est qu'l y a des classeurs qui sont composé de moins de 12 feuilles : 6 feuilles 7 feuilles .... alors la macro ne marche pas
je veux ajouter une condition dans la macro pour qu'elle gére correctement tous les classeurs
voila le code la macro :
Sub donnee()
Dim Fich As String, cd1, NM1, cd2, NM2, cd3, NM3, cd4, NM4, cd5, NM5, cd6, NM6, cd7, NM7, cd8, NM8, cd9, NM9, cd10, NM10, cd11, NM11, cd12, NM12
Fich = Application.GetOpenFilename
Workbooks.Open (Fich)
Sheets("Sheet1").Select
cd1 = ActiveSheet.Range("J14:J74")
NM1 = ActiveSheet.Range("I10")
Sheets("Sheet2").Select
cd2 = ActiveSheet.Range("J14:J74")
NM2 = ActiveSheet.Range("I10")
Sheets("Sheet3").Select
cd3 = ActiveSheet.Range("J14:J74")
NM3 = ActiveSheet.Range("I10")
Sheets("Sheet4").Select
cd4 = ActiveSheet.Range("J14:J74")
NM4 = ActiveSheet.Range("I10")
Sheets("Sheet5").Select
cd5 = ActiveSheet.Range("J14:J74")
NM5 = ActiveSheet.Range("I10")
Sheets("Sheet6").Select
cd6 = ActiveSheet.Range("J14:J74")
NM6 = ActiveSheet.Range("I10")
Sheets("Sheet7").Select
cd7 = ActiveSheet.Range("J14:J74")
NM7 = ActiveSheet.Range("I10")
Sheets("Sheet8").Select
cd8 = ActiveSheet.Range("J14:J74")
NM8 = ActiveSheet.Range("I10")
Sheets("Sheet9").Select
cd9 = ActiveSheet.Range("J14:J74")
NM9 = ActiveSheet.Range("I10")
Sheets("Sheet10").Select
cd10 = ActiveSheet.Range("J14:J74")
NM10 = ActiveSheet.Range("I10")
Sheets("Sheet11").Select
cd11 = ActiveSheet.Range("J14:J74")
NM11 = ActiveSheet.Range("I10")
Sheets("Sheet12").Select
cd12 = ActiveSheet.Range("J14:J74")
NM12 = ActiveSheet.Range("I10")
ActiveWorkbook.Close
Range("A14:A74") = cd1
Range("b14:b74") = NM1
Range("D14:D74") = cd2
Range("E14:E74") = NM2
Range("G14:G74") = cd3
Range("H14:H74") = NM3
Range("J14:J74") = cd4
Range("K14:K74") = NM4
Range("M14:M74") = cd5
Range("N14:N74") = NM5
Range("P14:P74") = cd6
Range("Q14:Q74") = NM6
Range("S14:S74") = cd7
Range("T14:T74") = NM7
Range("V14:V74") = cd8
Range("W14:W74") = NM8
Range("Y14:Y74") = cd9
Range("Z14:Z74") = NM9
Range("AB14:AB74") = cd10
Range("AC14:AC74") = NM10
Range("AE14:AE74") = cd11
Range("AF14:AF74") = NM11
Range("AH14:AH74") = cd12
Range("AI14:AI74") = NM12
End Sub
cordialement
Je travaille sur une macro , qui importe de données d'un classeur externe composé de plusieurs feuille : sheet1, sheet2 ......
ma macro gère correctement un classeur externe composé de 12 feuilles c'est a dire de sheet1 jusqu'a sheet12
mais le problème c-est qu'l y a des classeurs qui sont composé de moins de 12 feuilles : 6 feuilles 7 feuilles .... alors la macro ne marche pas
je veux ajouter une condition dans la macro pour qu'elle gére correctement tous les classeurs
voila le code la macro :
Sub donnee()
Dim Fich As String, cd1, NM1, cd2, NM2, cd3, NM3, cd4, NM4, cd5, NM5, cd6, NM6, cd7, NM7, cd8, NM8, cd9, NM9, cd10, NM10, cd11, NM11, cd12, NM12
Fich = Application.GetOpenFilename
Workbooks.Open (Fich)
Sheets("Sheet1").Select
cd1 = ActiveSheet.Range("J14:J74")
NM1 = ActiveSheet.Range("I10")
Sheets("Sheet2").Select
cd2 = ActiveSheet.Range("J14:J74")
NM2 = ActiveSheet.Range("I10")
Sheets("Sheet3").Select
cd3 = ActiveSheet.Range("J14:J74")
NM3 = ActiveSheet.Range("I10")
Sheets("Sheet4").Select
cd4 = ActiveSheet.Range("J14:J74")
NM4 = ActiveSheet.Range("I10")
Sheets("Sheet5").Select
cd5 = ActiveSheet.Range("J14:J74")
NM5 = ActiveSheet.Range("I10")
Sheets("Sheet6").Select
cd6 = ActiveSheet.Range("J14:J74")
NM6 = ActiveSheet.Range("I10")
Sheets("Sheet7").Select
cd7 = ActiveSheet.Range("J14:J74")
NM7 = ActiveSheet.Range("I10")
Sheets("Sheet8").Select
cd8 = ActiveSheet.Range("J14:J74")
NM8 = ActiveSheet.Range("I10")
Sheets("Sheet9").Select
cd9 = ActiveSheet.Range("J14:J74")
NM9 = ActiveSheet.Range("I10")
Sheets("Sheet10").Select
cd10 = ActiveSheet.Range("J14:J74")
NM10 = ActiveSheet.Range("I10")
Sheets("Sheet11").Select
cd11 = ActiveSheet.Range("J14:J74")
NM11 = ActiveSheet.Range("I10")
Sheets("Sheet12").Select
cd12 = ActiveSheet.Range("J14:J74")
NM12 = ActiveSheet.Range("I10")
ActiveWorkbook.Close
Range("A14:A74") = cd1
Range("b14:b74") = NM1
Range("D14:D74") = cd2
Range("E14:E74") = NM2
Range("G14:G74") = cd3
Range("H14:H74") = NM3
Range("J14:J74") = cd4
Range("K14:K74") = NM4
Range("M14:M74") = cd5
Range("N14:N74") = NM5
Range("P14:P74") = cd6
Range("Q14:Q74") = NM6
Range("S14:S74") = cd7
Range("T14:T74") = NM7
Range("V14:V74") = cd8
Range("W14:W74") = NM8
Range("Y14:Y74") = cd9
Range("Z14:Z74") = NM9
Range("AB14:AB74") = cd10
Range("AC14:AC74") = NM10
Range("AE14:AE74") = cd11
Range("AF14:AF74") = NM11
Range("AH14:AH74") = cd12
Range("AI14:AI74") = NM12
End Sub
cordialement
A voir également:
- Vba ignorer erreur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
2 réponses
Bonjour
Peut-^tre + simple avec nbre de feuilles variables
Michel
Peut-^tre + simple avec nbre de feuilles variables
Option Explicit
'----------
Sub ccc()
Dim Fich As String
Dim Nbre As Byte, Cptr As Byte, Cdx, NMx
Dim Cptr2 As Byte
Application.ScreenUpdating = False
Fich = Application.GetOpenFilename
Workbooks.Open (Fich)
Nbre = ActiveWorkbook.Sheets.Count
Cptr2 = 1
For Cptr = 1 To Nbre
With Sheets(Cptr)
Cdx = .Range("J14:J74")
NMx = .Range("I10")
End With
With ThisWorkbook.Sheets(1)
.Range(.Cells(14, Cptr2), .Cells(74, Cptr2)) = Cdx
.Range(.Cells(14, Cptr2 + 1), .Cells(74, Cptr2 + 1)) = NMx
Cptr2 = Cptr2 + 3
End With
Next
ActiveWorkbook.Close
End Sub
Michel
noe2008
Messages postés
184
Date d'inscription
Statut
Membre
Dernière intervention
4
Merci michel ça marche bien le problème est résolu.