J'ai une petite modif à faire de ta macro. Actuellement toutes les cellules
de A83 à A65535 sont effacées au debut de la macro. J'ai rajouté un tableau à
partir de la cellule A103. Lorsque je lance la macro, Excel me supprime le
contenu des cellules de ce tableau (et je en veux pas !!)
JB m'a modifié le debut de la macro afin d'effacer seulement de A83 à A102.
Mais il pb maintenant. Lorsque j'exécuter la macro, les résultats de la macro
ne s'inscrivent pas dès la cellule A83 mais seulement après la derniere
cellule non vide de mon tableau, c'est à dire dès A110...
Je te remets ta macro pour me dire d'où cela peut provenir !! :
Merci encore
Sub OT()
'
' Macro1 Macro
' Macro enregistrée le 18/03/2008 par FORCET
'Traitement Onglet POINTAGE
Sheets("POINTAGE").Activate
Selection.AutoFilter
Range("A8").Activate
On Error Resume Next
Range("A8", "A" & Range("A65535").End(xlUp).Row).Find(What:=Recherche,
After:=Range("A8"), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If ActiveCell.Address <> Range("A8").Address Then
Départ = ActiveCell.Address
If Donnée Like "*-" & Range("B" & ActiveCell.Row) & "-*" = False And ("C" &
ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) = Range("B" &
ActiveCell.Row)
Donnée = Donnée & "-" & Range("B" & ActiveCell.Row) & "-"
End If
For i = 1 To Range("A65535").End(xlUp).Row
Range("A8", "A" &
Range("A65535").End(xlUp).Row).FindNext(After:=ActiveCell).Activate
If ActiveCell.Address <> Départ Then
If Donnée Like "*-" & Range("B" & ActiveCell.Row) & "-*" = False And
Range("C" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) = Range("B" &
ActiveCell.Row)
Donnée = Donnée & "-" & Range("B" & ActiveCell.Row) & "-"
End If
Else
Exit For
End If
Next
End If
Rows(8).AutoFilter
'Traitement Onglet MATERIEL
Sheets("MATERIEL").Activate
Selection.AutoFilter
Range("C3").Activate
On Error Resume Next
Range("C3", "C" & Range("C65535").End(xlUp).Row).Find(What:=Recherche,
After:=Range("C3"), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If ActiveCell.Address <> Range("C3").Address Then
Départ = ActiveCell.Address
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And ("H" &
ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) = Range("G" &
ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
For i = 1 To Range("C65535").End(xlUp).Row
Range("C3", "C" &
Range("C65535").End(xlUp).Row).FindNext(After:=ActiveCell).Activate
If ActiveCell.Address <> Départ Then
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And
Range("H" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) = Range("G" &
ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
Else
Exit For
End If
Next
End If
Rows(3).AutoFilter
'Traitement Onglet LOCATION
Sheets("LOCATION").Activate
Selection.AutoFilter
Range("C3").Activate
On Error Resume Next
Range("C3", "C" & Range("C65535").End(xlUp).Row).Find(What:=Recherche,
After:=Range("C3"), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If ActiveCell.Address <> Range("C3").Address Then
Départ = ActiveCell.Address
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And ("H" &
ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) = Range("G" &
ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
For i = 1 To Range("C65535").End(xlUp).Row
Range("C3", "C" &
Range("C65535").End(xlUp).Row).FindNext(After:=ActiveCell).Activate
If ActiveCell.Address <> Départ Then
If Donnée Like "*-" & Range("G" & ActiveCell.Row) & "-*" = False And
Range("H" & ActiveCell.Row) = "I" Then
Sheets("SYNTHESE C").Range("A65535").End(xlUp).Offset(1, 0) = Range("G" &
ActiveCell.Row)
Donnée = Donnée & "-" & Range("G" & ActiveCell.Row) & "-"
End If
Else
Exit For
End If
Next
End If
Rows(3).AutoFilter
Sheets("SYNTHESE C").Activate
Range("A83", "A" & Range("A65535").End(xlUp).Row).Sort Key1:=Range("A83"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Worksheets("SYNTHESE C").Range("O83:O183").Rows.AutoFit
'
End Sub
Feuille "SYNTHESE C" la première cellule ayant une donnée partant du bas de la feuille colonne A ("A65535") vers le haut (End(xlup)) et décalée d'une ligne vers le bas (Offset(1,0)) pour prendre la cellule suivante libre
Donc effectivement si tu as rajouté un tableau les résutats se mettent juste aprés
Je te propose pour mettre les résultats juste au dessus de ce tableau de détecter la cellule libre en partant non pas du bas de la feuille mais de la cellule A102 et en utilisant le même principe Ce qui donne :
Feuille "SYNTHESE C" la première cellule ayant une donnée partant du
bas de la feuille colonne A ("A65535") vers le haut (End(xlup)) et
décalée d'une ligne vers le bas (Offset(1,0)) pour prendre la cellule
suivante libre
Donc effectivement si tu as rajouté un tableau les résutats se mettent
juste aprés
Je te propose pour mettre les résultats juste au dessus de ce tableau
de détecter la cellule libre en partant non pas du bas de la feuille
mais de la cellule A102 et en utilisant le même principe
Ce qui donne :
Feuille "SYNTHESE C" la première cellule ayant une donnée partant du bas de la feuille colonne A ("A65535") vers le haut (End(xlup)) et décalée d'une ligne vers le bas (Offset(1,0)) pour prendre la cellule suivante libre
Donc effectivement si tu as rajouté un tableau les résutats se mettent juste aprés
Je te propose pour mettre les résultats juste au dessus de ce tableau de détecter la cellule libre en partant non pas du bas de la feuille mais de la cellule A102 et en utilisant le même principe Ce qui donne :
Feuille "SYNTHESE C" la première cellule ayant une donnée partant du bas de la feuille colonne A ("A65535") vers le haut (End(xlup)) et décalée d'une ligne vers le bas (Offset(1,0)) pour prendre la cellule suivante libre
Donc effectivement si tu as rajouté un tableau les résutats se mettent juste aprés
Je te propose pour mettre les résultats juste au dessus de ce tableau de détecter la cellule libre en partant non pas du bas de la feuille mais de la cellule A102 et en utilisant le même principe Ce qui donne :
Feuille "SYNTHESE C" la première cellule ayant une donnée partant du
bas de la feuille colonne A ("A65535") vers le haut (End(xlup)) et
décalée d'une ligne vers le bas (Offset(1,0)) pour prendre la cellule
suivante libre
Donc effectivement si tu as rajouté un tableau les résutats se mettent
juste aprés
Je te propose pour mettre les résultats juste au dessus de ce tableau
de détecter la cellule libre en partant non pas du bas de la feuille
mais de la cellule A102 et en utilisant le même principe
Ce qui donne :
Feuille "SYNTHESE C" la première cellule ayant une donnée partant du bas de la feuille colonne A ("A65535") vers le haut (End(xlup)) et décalée d'une ligne vers le bas (Offset(1,0)) pour prendre la cellule suivante libre
Donc effectivement si tu as rajouté un tableau les résutats se mettent juste aprés
Je te propose pour mettre les résultats juste au dessus de ce tableau de détecter la cellule libre en partant non pas du bas de la feuille mais de la cellule A102 et en utilisant le même principe Ce qui donne :