Condition en macro excel besoin d'aide ! :(

Goundard

XLDnaute Nouveau
Bonjour bonjour,

depuis un moment je m'améliore beaucoup en macro excel, toutefois dernièrement j'ai un petit problème.
Je n'arrive pas à écrire quelque chose qui doit être tellement simple... En fait dans une macro je fais une recherche simple et bête sur un code de transaction et j'imprime par la suite l'emsemble de ces transactions. Toutefois dans le cas où le code en particulier n'est pas là, la macro arrête avec un bug. J'imagine qu'en utilisant un IF THEN ELSE on peut s'en sortir mais je n'arrive pas à l'inscrire comme il faut.

Merci à l'avance.
 

Goundard

XLDnaute Nouveau
Re : Condition en macro excel besoin d'aide ! :(

En fait le code importe peu je crois, je veux surtout comprendre le moyen de dire :
Si tu trouve le code S20, alors fait la suite sinon passe à la suite de la macro.

Je n'étais pas p-t pas très clair. Voilà le code de recherche

Code:
Sheets("Base").Cells.Find(What:="s20", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
    ActiveCell.Offset(0, -8).Select
    Sheets("Base").Range(Selection, Selection.End(xlToRight)).Select
    Sheets("Base").Range(Selection, Selection.End(xlDown)).Select
    Selection.Resize(Selection.Rows.Count, Selection.Columns.Count + 2).Select

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Condition en macro excel besoin d'aide ! :(

Re,

En fait le code importe peu je crois,
bah si... car tout dépend quelle instruction bogue.... essaye comme suit, en l'état c'est le "find" qui renvoie un message d'erreur si non trouvé....

Code:
Dim x As Range
Set x = Sheets("Base").Cells.Find(What:="s20", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
         xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not x Is Nothing Then x.Activate
 

Goundard

XLDnaute Nouveau
Re : Condition en macro excel besoin d'aide ! :(

Je ne suis pas très sur de bien comprendre la partie du

If not x is nothing then.

si je veux intégrer une suite dans le cas où il trouve x. du genre

Code:
ActiveCell.Offset(0, -8).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Resize(Selection.Rows.Count, Selection.Columns.Count + 2).Select

je dois le mettre où pour ne pas avoir d'erreur dans le cas où il ne trouve pas le x ?

Merci.
 

Pierrot93

XLDnaute Barbatruc
Re : Condition en macro excel besoin d'aide ! :(

Bonjour,

essaye ainsi :
Code:
Dim x As Range
Set x = Sheets("Base").Cells.Find(What:="s20", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
         xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not x Is Nothing Then 
x.Activate
ActiveCell.Offset(0, -8).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Resize(Selection.Rows.Count, Selection.Columns.Count + 2).Select
End if

bien que les "activate" et autres "select" soient rarement utiles en vba...

bon après midi
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.