> Tous les forums > Forum Bureautique
 sauter erreur dans une macroSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
noe2008
  Posté le 13/02/2016 @ 12:01 
Aller en bas de la page 
Petit astucien

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

Publicité
noe2008
 Posté le 13/02/2016 à 15:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Bilou47190 ça marche

ferrand
 Posté le 13/02/2016 à 19:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Sans voir ton fichier, tu devrais pouvoir y gagner en améliorant un peu le code... (au moins en longueur de macro !)

Sub donnee()
Dim Fich As String, i As Integer, cd, NM, plC As Range
Set plC = ActiveSheet.Range("A14:A74")
Fich = Application.GetOpenFilename
Application.ScreenUpdating = False
With Workbooks(Fich)
For i = 1 To .Worksheets.Count
With .Worksheets(i)
cd = .Range("J14:J74")
NM = .Range("I10")
plC.Offset(0, (i - 1) * 3) = cd
plC.Offset(0, (i - 1) * 3 + 1) = NM
End With
Next i
.Close
End With
Application.ScreenUpdating = True
End Sub

Cordialement.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
39,99 €Amazon Fire TV Stick 4K Ultra HD à 39,99 €
Valable jusqu'au 26 Janvier

En ce moment, l'Amazon Fire TV Stick 4K Ultra HD est à 39,99 € livrée gratuitement chez Boulanger au lieu de 59,99 €. Cette clé à brancher sur votre TV offre une sortie en 4K pour tous vos contenus en ultra haute définition, est compatible Alexa et possède une télécommande améliorée avec plus de boutons de contrôle. Avec cette clé, vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, MyCanal Molotov sur votre TV.


> Voir l'offre
33,75 €Carte mémoire Samsung 256 Go MicroSDXC Evo Select U3 (100 Mo/s) à 33,75 € livrée
Valable jusqu'au 27 Janvier

Amazon Allemagne fait une promotion sur la toute nouvelle carte mémoire Samsung 256 Go MicroSDXC Evo Select U3 qui passe à 29,63 €. Comptez 4,52 € pour la livraison en France soit un total de 33,75 € livrée. Une bonne affaire pour cette carte que l'on trouve ailleurs à partir de 60 € et qui offre des vitesses de 100 Mo/s en lecture et 90 Mo/s en écriture.  Elle est idéale pour les téléphones, caméras et appareils photo 4K. Elle est étanche, anti-choc et résiste aux rayons X et aux champs magnétiques. Elle est garantie 10 ans.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de frais de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
SOLDESLes soldes d'hiver 2021
Valable jusqu'au 16 Février

Les soldes commencent ce Mercredi 20 Janvier dans la plupart des départements Retrouvez ici la liste des pages dédiées à cet évènement chez les différents revendeurs high-tech afin de trouver la bonne affaire qui vous intéresse. Nous vous proposerons aussi les bons plans que nous aurons dénichés.


> Voir l'offre

Sujets relatifs
Macro introuvable / Erreur de compilation dans le module caché
Erreur dans macro
2 pages par feuille dans macro excel
erreur macro
Creation d' une boucle macro dans fichier EXCEL pour impression
macro afficher masquer lignes tableau dans word 2010
Ecrir par macro dans des cellules différents
[chemin relatif dans une macro]
Erreur date avec macro/ incapable d'ouvrir ailleurs que chez moi
se positionner avec une macro dans une cellule précise
Plus de sujets relatifs à sauter erreur dans une macro
 > Tous les forums > Forum Bureautique