Demander un message d'erreur

Bonjour,

C'est une question sans doute très très basique mais je débute et je ne trouve pas de réponse nulle part :/

J'ai créer une macro (en Feuille 2) qui débute en sélectionnant la cellule Active:

Sheets("Feuil1").Activate

ActiveCell.Select

Avant de passer à la suite du code, j'aurais voulu demander à ce qu'Excel m'ouvre un message d'erreur si la cellule active en question ne se trouve pas dans la colonne G. Ça doit pas être bien compliqué mais je ne sais pas comment définir cette situation comme une erreur -_-'.

Si vous avez un lien ou quoi que ce soit pour m'éclairer ce serait super gentil

Merci beaucoup,

Fanny

Bonjour et bienvenu(e)

A tester

Sub Test()
  Sheets("Feuil1").Activate
  If ActiveCell.Column <> 7 Then
    MsgBox "La cellule active n'est pas dans la colonne ""G"""
  End If
  'ActiveCell.Select       ' Pléonasme informatique
End Sub

Ca marche super

J'ai un peu modifier pour pouvoir avoir deux options d'action sur mon message d'erreur

J'aimerai juste changer un point, je ne sais pas trop si je dois ouvrir un nouveau post ou si je peux approfondir sur celui-là, dans le doute je vais rester là pour ne pas faire de nouveaux sujets A CHAQUE petite question supplémentaire^^

Voici la ligne conservée pour tester le fait que ma cellule soit ou nom dans la colonne 7 (colonne "matériel") :

If ActiveCell.Column <> 7 Then

Seulement avec cette solution, si je rajoute une colonne avant la colonne 7 dans mon tableau, la macro ne fonctionnera pas sur la bonne colonne (la colonne matériel sera la 8).

Alors plutôt que de changer la macro le cas échéant, voire plusieurs fois, est-il possible de tester le fait que la cellule active soit non pas dans la colonne 7 mais dans la colonne dont la première case vaut "matériel", ou dont la case en ligne 1 vaut "matériel" ??

S'il vaut mieux que j'ouvre un nouveau post, n'hésitez pas à me le dire !

Merci beaucoup,

Fanny

Bonjour à tous,

    Dim c As Range
    Set c = Rows(1).Find("Matériel", , xlFormulas, xlWhole)
    If c Is Nothing Then
        MsgBox "Colonne 'Matériel' non trouvée"
        Exit Sub
    End If
    If ActiveCell.Column <> c.Column Then
        '...
    Else
        '...
    End If

Respecter accent et majuscule à Matériel

eric

Bonsoir,

Merci beaucoup !

Effectivement il vérifie bien que la cellule soit dans la colonne matériel.

C'est plus loin dans mon code que ça bug du coup.

J'avais ce code-ci :

If ActiveCell.Column <> 7 Then

Dim Rep As Integer

Rep = MsgBox("Vous n'êtes pas dans la bonne colonne, voulez-vous continuer ?", vbYesNo + vbQuestion, "mDF XLpages.com")

If Rep = vbNo Then

Range("G" & Rows.Count).End(xlUp).Offset(1).Select

'mon code

Else

'mon code

End If

Else

'mon code

End If

Du coup, si je n'étais pas dans la bonne colonne (7) il me plaçait automatiquement dans la bonne colonne (G), à la dernière cellule vide.

Avec votre code j'ai :

Dim Matériel As Range

Set Matériel = Rows(1).Find("Matériel", , xlFormulas, xlWhole)

If ActiveCell.Column <> Matériel.Column Then

Dim Rep As Integer

Rep = MsgBox("Vous n'êtes pas dans la bonne colonne, voulez-vous continuer ?", vbYesNo + vbQuestion, "mDF XLpages.com")

If Rep = vbNo Then

Range("G" & Rows.Count).End(xlUp).Offset(1).Select

'mon code

Else

'mon code

End If

Else

'mon code

End If

Ma ligne Range n'est pas bonne.

En effet, en mettant "G" et si j'insère une colonne avant la G, je vais avoir le même problème que précédemment.

Il faudrait là aussi qu'il sélectionne la colonne "Matériel" mais je ne sais pas comment y faire référence pour que le logiciel comprenne ce que je souhaite. Il ne veut pas des piètres tentatives que j'ai réalisées ^^

Je suis preneuse de toute révélation sur la façon de rentrer cette info là dans le code

Merci encore

Fanny

Bonjour

Remplace ta ligne

Range("G" & Rows.Count).End(xlUp).Offset(1).Select

par

Cells(Rows.Count, Matériel.Column).End(xlUp).Offset(1).Select

Ca fonctionne !!! C'est juste super Un grand merci !

Je vais pouvoir aller me coucher sereinement ^^

A l'occasion, tu pourras m'expliquer la différence entre les deux lignes ?

Encore merci à tous

Fanny

Bonjour

Une autre façon d’écrire : Range("A1") = Cells(1,1)

Cells(Ligne, Colonne)

Colonne tu l'obtiens en cherchant "Matériel"

Ligne tu l'obtiens on faisant End(Xlup)

Rechercher des sujets similaires à "demander message erreur"