Probleme: un code d'une macro ne marche plus lorsqu'on l'insere dans un autre macro..

arnaud_garou

XLDnaute Nouveau
Bonjour.

Voici ma macro, plutot simple, et aui marche bien quand je l'execute de facon independante.

Sub CountryCode()

Dim MaPlage As Range
Dim Cellule As Range
Dim i As Integer, val As String
'Variant

Windows("Monthly Anomaly Report.xls").Activate
Sheets("Workfile").Select
With Sheets("Workfile")
Set MaPlage = Sheets("Anomalies, country codes").Range("D2:D13")
'" & Range("D2").End(xlDown).Address(0, 0))
For i = 6 To .Range("K65536").End(xlUp).Row
val = .Cells(i, 11).Value
For Each Cellule In MaPlage
'val2 = Cellule
If val = Cellule.Value Then
.Cells(i, 1) = Sheets("Anomalies, country codes").Cells(Cellule.Row, 5)
Exit For
End If
Next Cellule
Next i
End With
End Sub



Je souhaite l'inserer a la fin d'une autre macro, plus grosse, qui fait plein d'operations sur mon fichier de sortie.
Je colle donc le texte ci dessus a la fin de ma 'grosse ' macro, en modifiant un peu les variables pour etre sur qu'il n'y ait pas de conflit...

Voici le texte:

Dim MaPlage6 As Range
Dim Cellule6 As Range
Dim i6 As Integer, val6 As String
'Variant

Windows("Monthly Anomaly Report.xls").Activate
Sheets("Workfile").Select
With Sheets("Workfile")
Set MaPlage6 = Sheets("Anomalies, country codes").Range("D2:D13")
'" & Range("D2").End(xlDown).Address(0, 0))
For i6 = 6 To .Range("K65536").End(xlUp).Row
val6 = .Cells(i, 11).Value
For Each Cellule6 In MaPlage6
'val2 = Cellule
If val6 = Cellule6.Value Then
.Cells(i, 1) = Sheets("Anomalies, country codes").Cells(Cellule.Row, 5)
Exit For
End If
Next Cellule6
Next i6
End With



Et la le boulot n'est plus fait; le programme ne plante pas, mais ce qui etait bien fait par ma petite macro independant n'est plus fait... Que faire...?

Merci de votre aide...
 

porcinet82

XLDnaute Barbatruc
Re : Probleme: un code d'une macro ne marche plus lorsqu'on l'insere dans un autre macro..

re arnaud_garou,

Le sucis c'est que tu change le nom de tes variables mais tu ne modifie par le corp du code
Dim MaPlage6 As Range
Dim Cellule6 As Range
Dim i6 As Integer, val6 As String
'Variant

Windows("Monthly Anomaly Report.xls").Activate
Sheets("Workfile").Select
With Sheets("Workfile")
Set MaPlage6 = Sheets("Anomalies, country codes").Range("D2:D13")
'" & Range("D2").End(xlDown).Address(0, 0))
For i6 = 6 To .Range("K65536").End(xlUp).Row
val6 = .Cells(i6, 11).Value
For Each Cellule6 In MaPlage6
If val6 = Cellule6.Value Then
.Cells(i6, 1) = Sheets("Anomalies, country codes").Cells(Cellulei6.Row, 5)
Exit For
End If
Next Cellule6
Next i6
End With


Vérifie, il y en a peut etre d'autres...

Une autre solution est de garder ta petite macro, et de l'appeler dans la grosse, un truc du genre :
PHP:
Sub Grosse_macro()
'ton code
Call Petite_macro
'le reste de ton code
End Sub

La ligne Call Petite_macro execute le code de la petite macro et revient à l'execution de la grosse ensuite.

@+
 

arnaud_garou

XLDnaute Nouveau
Re : Probleme: un code d'une macro ne marche plus lorsqu'on l'insere dans un autre macro..

lol, j'ignorais que l'instruction etait call, c'est tellement plus simple... J'ai cherche pourtant.
Enfin pour le coup du programme mal modifie, j'avoue que ce devait etre la fatigue...
Eh oui, on est en fin de journee ici a hong kong...

merci !
 

porcinet82

XLDnaute Barbatruc
Re : Probleme: un code d'une macro ne marche plus lorsqu'on l'insere dans un autre macro..

re,

Oua c'est vraiment fort internet, pouvoir aider des personne à l'autre bout du monde (ou presque). J'avais deja aidé quelqu'un de Nouvelle Calédonie, maintenant toi de Hong Kong...

Et bien bonne soirée alors,

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 556
Messages
2 089 589
Membres
104 215
dernier inscrit
Jean Michl