Erreur code

Résolu/Fermé
GuiGui - Modifié par GuiGui le 16/05/2013 à 12:42
 GuiGui - 16 mai 2013 à 14:15
Bonjour,

Le code ci-dessous fonctionne bien s'il n'y a qu'une seule valeur dans les cellules à copier. Par contre, lorsque j'ai 2 valeurs dans les cellules (exemple "12 FR") la macro beug.
Que dois-je ajouter pour que cette dernière me rapatrie bien "12 FR".

C'est là que la macro beug:
Dim Effectif As Integer, NumGestion As Integer
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")



-Merci-



Sub recup()
Range("A1").Select 'sélectionner la cellule de début
Chemin = "MonChemin"
fichier = Dir(Chemin & "*.xls")
Do While fichier <> ""
Workbooks.Open Filename:=Chemin & fichier

Dim Effectif As Integer, NumGestion As Integer
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")
    
ThisWorkbook.Activate
ActiveCell.Value = Effectif
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = NumGestion

Windows(fichier).Close savechanges:=False
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
fichier = Dir ' Fichier suivant
Loop
End Sub

1 réponse

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
16 mai 2013 à 14:13
Bonjour,

C'est là que la macro beug:
Dim Effectif As Integer, NumGestion As Integer
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")

Eh oui, tant que vous ecrivez des nombres c'est bon, mais si vous incluez des lettres c'est plus bon.

Dim Effectif As Varint, NumGestion As Variant
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")

mais attention Effectif et NumGestion seront des nombres ou des chaines de caracteres suivant vos cellules.
0
J'ai résolu mon probleme en remplaçant Integer par String.
Pour repondre a ta question, Effectif est forcement un nombre par contre NumGestion peut contenir des chaines de caracteres
0