Macro modifiée après exécution d'une autre macro.
Bonjour le Forum, Bonjour à tous,
Je suis en train de m'arracher les cheveux !!!
Dans un fichier, je dois lancer 2 macros.
Les 2 macros fonctionnent indépendamment l'une de l'autre.
La macro 2 seule fonctionne.
La macro 1 seule fonctionne.
Le problème est que lorsque la macro 1 à tournée, la macro 2 ensuite ne donne plus le résultat voulu.
Après analyse, cela vient de cette ligne dans la macro 1 :
Code:
x = Columns(15).Find("*", , xlValues, , 1, 2, 0).Row
Une fois que cette ligne est passée, la macro 2 ne donne plus le résultat voulu.
Macro 2 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Sub Historisation()
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As Date, AdresseTrouvee As String
Dim Rep As Integer
Valeur_Cherchee = Range("H2")
Set PlageDeRecherche = Sheets("TDB").Range("D2:BR2")
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
If Trouve Is Nothing Then
AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
Rep = MsgBox("Vous allez historiser les données de " & Format(Valeur_Cherchee, "mmmm-yy") & ". Voulez-vous continuer ?", vbYesNo + vbQuestion, "Mon message")
If Rep = vbYes Then => Action |
La macro 1 agit sur l'onglet 1.
La macro 2 agit sur l'onglet 2 et 3
Si je lance la macro 2 avant la macro 1, Trouve = La date correspondente et j'ai ma box qui s'ouvre.
Si je lance la macro 2 après la macro 1, Trouve = Nothing et End.
H2 est une date
D2:BR2 = plage comprenant des dates
Lorsque la date en H2 est trouvée dans D2:BR2, alors action.
Sinon, end.
Après la macro 1, la macro 2 dit ne pas trouver la date dans D2:BR2 (alors qu'elle y est bien...)
Si je ferme tous les excel et que je re-ouvre mon fichier, la macro 2 me redonne Trouve = La date correspondente et j'ai ma box qui s'ouvre...
J'ai testé la macro 1 pas à pas et c'est bien a partir de x = Columns(15).Find("*", , xlValues, , 1, 2, 0).Row que le bat blesse.
Y a t-il une ligne à changer pour que cela fonctionne ?
Macro 1 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Sub MiseEnFormerelevé()
'
' MiseEnFormerelevé Macro
'
Dim x As Range
Dim DernLigne As Integer
Cells.Select
Range("AA1").Activate
Selection.EntireColumn.Hidden = False
Set x = Columns(18).Find("*", , xlValues, , 1, 2, 0)
If Not x Is Nothing Then
DernLigne = x.Row
MaPlage = "(M2:W" & DernLigne & ")"
Range(MaPlage).Select
End If
Selection.Copy
Range("Tableau1[Ordre]").Select
ActiveSheet.Paste
Columns("M:BB").Select
Selection.EntireColumn.Hidden = True
Range("Tableau1[[#Headers],[Ordre]]").Select
Application.CutCopyMode = False
End Sub |
Macro 2 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Sub Historisation()
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As Date, AdresseTrouvee As String
Dim Rep As Integer
Valeur_Cherchee = Range("H2")
Set PlageDeRecherche = Sheets("TDB").Range("D2:BR2")
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
If Trouve Is Nothing Then
AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
Rep = MsgBox("Vous allez historiser les données de " & Format(Valeur_Cherchee, "mmmm-yy") & ". Voulez-vous continuer ?", vbYesNo + vbQuestion, "Les 100 DERNIERS METRES")
If Rep = vbYes Then
AdresseTrouvee = Trouve.Address
Sheets("Formules").Visible = True
Sheets("Formules").Select
Range("D4:E18").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TDB").Select
Range(AdresseTrouvee).Select
ActiveCell.Offset(2, 0).Select
ActiveSheet.Paste
Sheets("Formules").Select
Range("D22:E62").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("TDB").Select
Range(AdresseTrouvee).Select
ActiveCell.Offset(20, 0).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Formules").Visible = False
Sheets("TDB").Select
Else
End If
End If
End Sub |
(Je ne peux pas diffuser le fichier car très lourd et confidentiel)
Merci.
Bob 182