XL 2016 Msg box si cellule vide

ks102

XLDnaute Nouveau
Bonjour à tous,

J'utilise une macro qui copie colle les données de certaines celulles de l'onglet "FNC" vers l'onglet "incrémentation".
Je souhaiterai ajouter à ma macro une condition qui vérifie qu'aucunes de ces cellules soient vides avant d'effectuer le copier/coller

Si une des cellules vides = msg box "il manque des informations dans une cellule"

Voici mon code:

VB:
Dim ligne As Long
    ligne = Sheets("incrementation").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("incrementation").Range("A" & ligne).Value = Sheets("EFNC").Range("AC1").Value + 1
    Sheets("incrementation").Range("B" & ligne).Value = Sheets("EFNC").Range("J6").Value
    Sheets("incrementation").Range("C" & ligne).Value = Sheets("EFNC").Range("J7").Value
    Sheets("incrementation").Range("D" & ligne).Value = Sheets("EFNC").Range("J8").Value
    Sheets("incrementation").Range("E" & ligne).Value = Sheets("EFNC").Range("J9").Value
    Sheets("incrementation").Range("F" & ligne).Value = Sheets("EFNC").Range("J10").Value
    Sheets("incrementation").Range("G" & ligne).Value = Sheets("EFNC").Range("X6").Value
    Sheets("incrementation").Range("H" & ligne).Value = Sheets("EFNC").Range("X7").Value
    Sheets("incrementation").Range("I" & ligne).Value = Sheets("EFNC").Range("X8").Value
    Sheets("incrementation").Range("J" & ligne).Value = Sheets("EFNC").Range("X9").Value
    Sheets("incrementation").Range("K" & ligne).Value = Sheets("EFNC").Range("X10").Value
    Sheets("incrementation").Range("L" & ligne).Value = Sheets("EFNC").Range("K13").Value
    Sheets("incrementation").Range("M" & ligne).Value = Sheets("EFNC").Range("Y13").Value
    Sheets("incrementation").Range("N" & ligne).Value = Sheets("EFNC").Range("F15").Value
    Sheets("EFNC").Range("AC1").Value = Sheets("EFNC").Range("AC1").Value + 1

Je ne sais pas si il existe déjà une discussion à ce sujet.

Merci d'avance pour votre aide :)
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous, toutes,
Peut-être comme ceci à faire sur les autres lignes :
VB:
If Sheets("EFNC").Range("AC1").Value + 1 <> "" Then
Sheets("incrementation").Range("A" & ligne).Value = Sheets("EFNC").Range("AC1").Value + 1
Else
MsgBox "il manque des informations dans la cellule AC1"
End If
If Sheets("EFNC").Range("J6") <> "" Then
Sheets("incrementation").Range("B" & ligne).Value = Sheets("EFNC").Range("J6").Value
Else
MsgBox "il manque des informations dans la cellule J6"
End If
Bonne journée !
 

Jacky67

XLDnaute Barbatruc
Si une des cellules vides = msg box "il manque des informations dans une cellule"
Bonjour à tous
Cela pourrait ressembler à ceci
VB:
Sub test()
    Dim C As Range, ligne&
    With Sheets("EFNC")
        For Each C In .Range("AC1,J6:j10,x6:x10,K13,Y13,F15")
            If C = "" Then .Activate: C.Select: MsgBox "Il manque une information en " & C.Address(0, 0), vbInformation, "Information": Exit Sub
        Next
    End With
    With Sheets("incrementation")
        ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Range("A" & ligne).Value = Sheets("EFNC").Range("AC1").Value + 1
        .Range("B" & ligne).Value = Sheets("EFNC").Range("J6").Value
        .Range("C" & ligne).Value = Sheets("EFNC").Range("J7").Value
        .Range("D" & ligne).Value = Sheets("EFNC").Range("J8").Value
        .Range("E" & ligne).Value = Sheets("EFNC").Range("J9").Value
        .Range("F" & ligne).Value = Sheets("EFNC").Range("J10").Value
        .Range("G" & ligne).Value = Sheets("EFNC").Range("X6").Value
        .Range("H" & ligne).Value = Sheets("EFNC").Range("X7").Value
        .Range("I" & ligne).Value = Sheets("EFNC").Range("X8").Value
        .Range("J" & ligne).Value = Sheets("EFNC").Range("X9").Value
        .Range("K" & ligne).Value = Sheets("EFNC").Range("X10").Value
        .Range("L" & ligne).Value = Sheets("EFNC").Range("K13").Value
        .Range("M" & ligne).Value = Sheets("EFNC").Range("Y13").Value
        .Range("N" & ligne).Value = Sheets("EFNC").Range("F15").Value
    End With
    Sheets("EFNC").Range("AC1").Value = Sheets("EFNC").Range("AC1").Value + 1
End Sub
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re,
pour renseigner la cellule vide, ajout de inputbox qui peut supprimer Msgbox !
VB:
If Sheets("EFNC").Range("AC1").Value + 1 <> "" Then
Sheets("incrementation").Range("A" & ligne).Value = Sheets("EFNC").Range("AC1").Value + 1
Else
MsgBox "il manque des informations dans la cellule AC1"
Range("AC1") = InputBox("Veuillez renseigner la cellule AC1")
End If
If Sheets("EFNC").Range("J6") <> "" Then
Sheets("incrementation").Range("B" & ligne).Value = Sheets("EFNC").Range("J6").Value
Else
MsgBox "il manque des informations dans la cellule J6"
Range("J6") = InputBox("Veuillez renseigner la cellule J6")
End If
 

JBARBE

XLDnaute Barbatruc
re,
Avec inpubox qui peut-être remplacé par msgbox !
VB:
Sub x()
Dim ligne As Long
    ligne = Sheets("incrementation").Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets("incrementation").Range("A" & ligne).Value = Sheets("EFNC").Range("AC1").Value + 1
If Sheets("EFNC").Range("AC1").Value + 1 <> "" Then
Sheets("incrementation").Range("A" & ligne).Value = Sheets("EFNC").Range("AC1").Value + 1
Else
Range("AC1") = InputBox("Veuillez renseigner la cellule AC1")
End If
If Sheets("EFNC").Range("J6") <> "" Then
Sheets("incrementation").Range("B" & ligne).Value = Sheets("EFNC").Range("J6").Value
Else
Range("J6") = InputBox("Veuillez renseigner la cellule J6")
End If
    If Sheets("EFNC").Range("J7") <> "" Then
Sheets("incrementation").Range("C" & ligne).Value = Sheets("EFNC").Range("J7").ValueElse
Range("J7") = InputBox("Veuillez renseigner la cellule J7")
End If
    If Sheets("EFNC").Range("J8") <> "" Then
Sheets("incrementation").Range("D" & ligne).Value = Sheets("EFNC").Range("J8").Value
Else
Range("J8") = InputBox("Veuillez renseigner la cellule J8")
End If
    If Sheets("EFNC").Range("J9") <> "" Then
Sheets("incrementation").Range("E" & ligne).Value = Sheets("EFNC").Range("J9").ValueElse
Range("J9") = InputBox("Veuillez renseigner la cellule J9")
End If
    If Sheets("EFNC").Range("J10") <> "" Then
Sheets("incrementation").Range("F" & ligne).Value = Sheets("EFNC").Range("J10").Value
Else
Range("J10") = InputBox("Veuillez renseigner la cellule J10")
End If
    If Sheets("EFNC").Range("X6") <> "" Then
Sheets("incrementation").Range("G" & ligne).Value = Sheets("EFNC").Range("X6").Value
Else
Range("X6") = InputBox("Veuillez renseigner la cellule X6")
End If
    If Sheets("EFNC").Range("X7") <> "" Then
 Sheets("incrementation").Range("H" & ligne).Value = Sheets("EFNC").Range("X7").Value
 Else
Range("X7") = InputBox("Veuillez renseigner la cellule X7")
End If
    If Sheets("EFNC").Range("X8") <> "" Then
Sheets("incrementation").Range("I" & ligne).Value = Sheets("EFNC").Range("X8").Value
Else
Range("X8") = InputBox("Veuillez renseigner la cellule X8")
End If
    If Sheets("EFNC").Range("X9") <> "" Then
Sheets("incrementation").Range("J" & ligne).Value = Sheets("EFNC").Range("X9").Value
Else
Range("X9") = InputBox("Veuillez renseigner la cellule X9")
End If
    If Sheets("EFNC").Range("X10") <> "" Then
Sheets("incrementation").Range("K" & ligne).Value = Sheets("EFNC").Range("X10").Value
Else
Range("X10") = InputBox("Veuillez renseigner la cellule X10")
End If
    If Sheets("EFNC").Range("K13") <> "" Then
Sheets("incrementation").Range("L" & ligne).Value = Sheets("EFNC").Range("K13").Value
Else
Range("K13") = InputBox("Veuillez renseigner la cellule K13")
End If
    If Sheets("EFNC").Range("Y13") <> "" Then
Sheets("incrementation").Range("M" & ligne).Value = Sheets("EFNC").Range("Y13").Value
Else
Range("Y13") = InputBox("Veuillez renseigner la cellule Y13")
End If
    If Sheets("EFNC").Range("F15") <> "" Then
Sheets("incrementation").Range("N" & ligne).Value = Sheets("EFNC").Range("F15").Value
Else
Range("F15") = InputBox("Veuillez renseigner la cellule F15")
End If
Sheets("EFNC").Range("AC1").Value = Sheets("EFNC").Range("AC1").Value + 1
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine