Arrêter macro si une cellule est "#N/A" ou vide

Bonjour,

Dans ma macro je veux insérer une boite de dialogue pour donner une marche à suivre lorsque quand dans une plage de cellule elle voit #N/A (à cause d'une recherchev) ou cellule vide si je converti un #N/A en cellule vide.

Ca se présente comme suit:

Sub MacroSN()
Dim Roue As Long
Dim MaPlage As Range, Cel As Range

'Colle les nouveaux S/N du fichier .csv
Sheets(2).Select
Range("A2:A19").PasteSpecial xlPasteValues
Sheets(1).Select

- Faire le test ici -

Range("D2") = "1" Then
InputBox ("Vide")
Exit Sub

- continuer la macro sans boite de dialogue si test négatif - 

'Demande le numéro du jeu
Roue = InputBox("Quel est le N° du nouveau Jeu d'Aubes 913 ?")

'Colle le numéro du jeu dans la feuille de mise en caisse
Range("A2") = Roue

'Demande le nombre d'impression à faire
Rep2 = InputBox("Combien de copies ? ", , 1)
If Rep2 = "" Then Exit Sub
Sheets("Liste Jeu").PrintOut copies:=Rep2

'Sauvegarde
ActiveWorkbook.Save

End Sub

J’essaie déjà de voir si ça fonctionne une cellule mais j'ai un message d'erreur avec le end if(car je sais pas où le mettre) ou autre.

J'ai parcouru plein de site et je trouve pas ce qu'il me manque.

Merci d'avance.

Bonjour,

Vous pourriez mieux expliquer ce que vous voulez faire ou placer un fichier sans données confidentielles

Exemple ici

Range("D2") = "1" Then
InputBox ("Vide")
Exit Sub

Vous voulez faire quoi là ?
Actuellement si D2 = 1 on affiche une inputbox à compléter puis vous sortez de la macro. Pourquoi ?

Déjà le

Range("D2") = "1" Then
InputBox ("Vide")
Exit Sub

Me dit erreur de syntaxe, et je dois mettre une MsgBox qui va afficher "faire maj" et quand on clique "OK" ça quitte la macro.

Je dois sortir de la macro car la feuille que je vais imprimer va manquer de données, donc on fait une maj des données dans un autre onglet du fichier.

En gros.

- On colle les données

- si dans la plage de cellule, une seule est vide ou #N/A, alors boite dialogue pour l'indique

- si aucune cellule vide continue la macro normalement.

Je vais essayer de mettre un fichier car celui que j'utilise est trop lourd.

Du coup je me suis retrouvé avec ça:

If Range("D2" = 0) Then

vide = MsgBox("test", vbOKCancel)

If (vide = 0) Then
    Exit Sub
End If

MsgBox ("ok")

Et juste avant avec je dois faire ma vérification

Je pense avoir trouvé, si jamais on peut optimiser.

If Range("D2") = 0 Then 'D2 étant une cellule test et 0 pour vide mais en réalité j'ai #N/A

MsgBox("Faire la MAJ")
Exit Sub

Else

MsgBox ("on continu") 'sera effacé c'est pour le test

End If

Maintenant je dois trouver une solution pour que D2 devienne ma plage B2:C19 et comme c'est une recherchev j'ai #N/A. Une idée pour récupérer cette info?

Bonjour

essayez ceci

Sub test()
Dim rng As Range

On Error Resume Next
Set rng = ActiveSheet.Range("D2:D10").SpecialCells(xlCellTypeFormulas, 16)
If Err.Number = 0 Then
    MsgBox "faire MAJ sur cellule " & rng.Address
End If
End sub

Le message vous renverra toutes les cellules où vous avez une erreur

Si ok -->

Cordialement

Bonjour,

Je vais essayer à l'occasion car ça simplifiera ce que j'ai fais peut être.

En gros sur mes cellules j'ai fais =sierreur(recherchev blabla;1) et dans une autre cellule (D2 du coup mdr) une somme, comme ça dès que j'ai D2 >0 ça veut dire qu'il y a une erreur.

Merci pour l'aide en tous cas.

Rechercher des sujets similaires à "arreter macro vide"