Bonjour,
Voici mon problème. J'ai fait une maccro de tri qui analyse des données, et est censé me donné des équivalences condensés. Ma macro marche à merveille. Le problème, c'est qu'elle ne marche qu'une fois à l'ouverture du .xls et encore. De temps en temps elle marche, souvent elle ne marche pas.
Il n'y a jamais de bug, juste qu'elle ne fait pas ce qu'elle devrait, et les informations que je devrais retrouvé en début de pages, sont effacées ou inexistante, éparpillé partout. C'est vraiment enervant, car quand elle marche, elle fait exactement ce que je souhaite !!
Je souhaiterais donc que les plus experts d'entre vous scrutent mon code afin de déceler les incohérences, ou les erreurs qui font que mon code n'est pas correctement traité, ou pas entièrement traité par excel. (je pensais aux variables qui n'étaient pas reset entre chaque utilisation, ou un truc du genre, mais les "end" sont bien présents).
Merci d'avance,
Cordialement.
Voici mon problème. J'ai fait une maccro de tri qui analyse des données, et est censé me donné des équivalences condensés. Ma macro marche à merveille. Le problème, c'est qu'elle ne marche qu'une fois à l'ouverture du .xls et encore. De temps en temps elle marche, souvent elle ne marche pas.
Il n'y a jamais de bug, juste qu'elle ne fait pas ce qu'elle devrait, et les informations que je devrais retrouvé en début de pages, sont effacées ou inexistante, éparpillé partout. C'est vraiment enervant, car quand elle marche, elle fait exactement ce que je souhaite !!
Je souhaiterais donc que les plus experts d'entre vous scrutent mon code afin de déceler les incohérences, ou les erreurs qui font que mon code n'est pas correctement traité, ou pas entièrement traité par excel. (je pensais aux variables qui n'étaient pas reset entre chaque utilisation, ou un truc du genre, mais les "end" sont bien présents).
Code:
Sub Bouton100_QuandClic()
'--------------------------------------------------------------------
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) Like "*BLABLA*" Then Cells(i, 2) = Cells(i + 2, 1)
Next i
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Not Cells(i, 1) Like "*BLABLA*" Then Cells(i, 1) = ""
Next i
Selection.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Not Cells(i, 2) Like "*&*" Then Cells(i, 2) = ""
Next i
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Not Cells(i, 2) Like "*target*" Then Cells(i, 1) = ""
Next i
Selection.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
'--------------------------------------------------------------------
Dim C As Range
For Each C In Range("A1", Range("A65536").End(xlUp))
If Len(C) > 1 Then C = Right(C, Len(C) - 28)
Next C
For Each C In Range("B1", Range("B65536").End(xlUp))
If Len(C) > 1 Then C = Right(C, Len(C) - 17)
Next C
For Each C In Range("B1", Range("B65536").End(xlUp))
If Len(C) > 1 Then C = Left(C, Len(C) - 10)
Next C
'--------------------------------------------------------------------
Dim Pos As Integer
Dim j As Long
For j = 1 To Range("A" & Rows.Count).End(xlUp).Row
With Range("A" & j)
Pos = InStr(.Value, "resname")
If Pos <> 0 Then
.Value = Left(.Value, InStr(.Value, "resname") - 3)
End If
End With
Next j
End Sub
Merci d'avance,
Cordialement.