Message d'erreur en fonction de la valeur d'une cellule dans une colonne

Bonjour

J'aimerais générer un message d'erreur bloquant le transfert de donnée d'un onglet à un autre.

Sur l'onglet EXPORT, s'il y a la valeur KO dans la colonne M, alors j'aimerais avoir un message d'erreur qui s'affiche lorsque je clique sur EXPORT TOOL qui est une macro de transfert de données.

Ce message d'erreur s'affiche à chaque fois que je clique sur EXPORT TOOL, et ne permet pas le transfert de données, tant que la valeur KO est présente dans la colonne.

Ci-joint le fichier d'exemple.

17message-erreur.xlsm (545.31 Ko)

Merci

Bonjour,

Le message d'erreur à adapter ...

Sub EXPORT_TOOL()
        ' Export to Tool upload
If Application.WorksheetFunction.CountIf(Columns("M:M"), "KO") > 0 Then
    MsgBox "Transfert momentanément impossible, orderable présent."
    Exit Sub
Else
    Sheets("EXPORT").Columns("A:E").Copy Sheets("EXPORT TOOL").Range("A1")
    Sheets("EXPORT").Columns("J:K").Copy Sheets("EXPORT TOOL").Range("F1")
    Sheets("EXPORT").Range("A2").Select
End If
End Sub

ric

Merci

Juste un souci, si seule la derniere ligne est KO alors le message ne s'affiche pas.

Comment corriger?

Bonjour,

Ouupppssss! Une erreur de ma part > 0 et non > 1

J'ai corrigé le code plus haut.

Désolé

ric

Salut Sophie,

Salut Ric,

Sub EXPORT_TOOL()
'
Dim sWk1 As Worksheet, sWk2 As Worksheet
Set sWk1 = Worksheets("EXPORT")
Set sWk2 = Worksheets("EXPORT TOOL")
'
If WorksheetFunction.CountIf(sWk1.Columns("M:M"), "KO") > 0 Then
    MsgBox "KO repéré!" & Chr(10) & "Export annulé!", vbCritical + vbOKOnly, "Alerte"
Else
    sWk2.Range("A2:G" & sWk2.Range("A" & Rows.Count).End(xlUp).Row).ClearContents
    iRow1 = sWk1.Range("A" & Rows.Count).End(xlUp).Row
    sWk2.Range("A2:E" & iRow1).Value = sWk1.Range("A2:E" & iRow1).Value
    sWk2.Range("F2:G" & iRow1).Value = sWk1.Range("J2:K" & iRow1).Value
End If
'
End Sub

A+

Bonjour à tous,

@ curulis57 ... J'aime bien ce type message

Dans le fichier, SophieB a "Option explicit"

Il faut donc déclarer iRow1

Sub EXPORT_TOOL()
'
Dim sWk1 As Worksheet, sWk2 As Worksheet
Dim iRow1 As Long

Set sWk1 = Worksheets("EXPORT")
Set sWk2 = Worksheets("EXPORT TOOL")
'
If WorksheetFunction.CountIf(sWk1.Columns("M:M"), "KO") > 0 Then
    MsgBox "KO repéré!" & Chr(10) & "Export annulé!", vbCritical + vbOKOnly, "Alerte"
Else
    sWk2.Range("A2:G" & sWk2.Range("A" & Rows.Count).End(xlUp).Row).ClearContents
    iRow1 = sWk1.Range("A" & Rows.Count).End(xlUp).Row
    sWk2.Range("A2:E" & iRow1).Value = sWk1.Range("A2:E" & iRow1).Value
    sWk2.Range("F2:G" & iRow1).Value = sWk1.Range("J2:K" & iRow1).Value
End If
'
End Sub

ric

bonjour

sous Excel nul besoin de "recopier des données", on les laisse dans leur feuille d'origine

on peut les voir avec des TCD (mon exemple ci-dessous) ou des requêtes (menu Données, obtenir)

dans le segment, décocher "KO", c'est tout

pas de VBA, pas de formule ni de calcul. Rien !

bonjour

sous Excel nul besoin de "recopier des données", on les laisse dans leur feuille d'origine

on peut les voir avec des TCD (mon exemple ci-dessous) ou des requêtes (menu Données, obtenir)

dans le segment, décocher "KO", c'est tout

pas de VBA, pas de formule ni de calcul. Rien !

@Ric, super merci et bonne journée

Salut Ric,

mauvaise habitude de vilain garnement...

Je m'en flagelle mentalement tous les jours!

Tant qu'à faire, j'aurais alors mis lRow pour un Long...

A+

Rechercher des sujets similaires à "message erreur fonction valeur colonne"