Vérifier des champs vides

Fermé
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017 - Modifié par Whismeril le 23/10/2015 à 16:25
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 28 oct. 2015 à 18:41
Bonjour,

pour placer des XX dans la colonne AP je dois verifier ces champs la(I,S,T,AH,AI,AJ,AF,AG) aussi avec les autres conditions si ils sont remplis je mets un XX si ils ne sont pas je dois envoyer un message d'erreur qui indique le numero du champ vide , est ce que c'est possible ?

vocii mon code :


Sub Decision()


    Dim cell As Range
    
    Dim i As Integer
    Dim j As Integer
            
  For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
        If CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" Then
            
                If CStr(ActiveSheet.Cells(i, 14).Value) = "AEP" _
                Or CStr(ActiveSheet.Cells(i, 14).Value) = "CMC_REV" _
                Or CStr(ActiveSheet.Cells(i, 14).Value) = "CMC_APT" _
                Or CStr(ActiveSheet.Cells(i, 14).Value) = "CS_TPD" _
                Or CStr(ActiveSheet.Cells(i, 14).Value) = "DM_ID" Then
                    
                             ActiveSheet.Cells(i, 42).Value = "XX"
            End If
        
        
        End If
    
    Next i
    
      For j = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row

If CStr(ActiveSheet.Cells(j, 31).Value) = "Completed - Pool Created/ Complété - Bassin crée" Then
    If CStr(ActiveSheet.Cells(j, 14).Value) = "EA_CPC" _
                Or CStr(ActiveSheet.Cells(j, 14).Value) = "EA_DPD" Then
                            ActiveSheet.Cells(j, 42).Value = "XX"
    End If
    
    End If

Next j
end sub


EDIT : Ajout du LANGAGE dans les balises de code.
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.



3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
25 oct. 2015 à 03:08
Bonjour
Si j'ai bien compris, si une des cellules des colonnes suivantes ( I, N, S, T, AF,AG,AH,AI,AJ) est vide, alors on met un message en AP sinon "XX".
Sub Decision()
    Dim ChampsVides
    Dim i As Integer
    Application.ScreenUpdating = False
    For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
        ChampsVides = " "
        If Cells(i, 9) = "" Then ChampsVides = ChampsVides & "I "
        If Cells(i, 19) = "" Then ChampsVides = ChampsVides & "S "
        If Cells(i, 20) = "" Then ChampsVides = ChampsVides & "T "
        If Cells(i, 32) = "" Then ChampsVides = ChampsVides & "AF "
        If Cells(i, 33) = "" Then ChampsVides = ChampsVides & "AG "
        If Cells(i, 34) = "" Then ChampsVides = ChampsVides & "AH "
        If Cells(i, 35) = "" Then ChampsVides = ChampsVides & "AI "
        If Cells(i, 36) = "" Then ChampsVides = ChampsVides & "AJ "
        If ChampsVides <> " " Then
            Cells(i, 42) = "Les champs suivants sont vides" & ChampsVides
            GoTo Suivant
        End If
        
        If CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" Then
            Select Case CStr(ActiveSheet.Cells(i, 14).Value)
                Case Is = "AEP", "CMC_REV", "CMC_APT", "CS_TPD", "DM_ID"
                    ActiveSheet.Cells(i, 42).Value = "XX"
                Case Else
                    Cells(i, 42) = "Le champ N est vide"
            End Select
        ElseIf CStr(ActiveSheet.Cells(j, 31).Value) = "Completed - Pool Created/ Complété - Bassin crée" Then
           Select Case CStr(ActiveSheet.Cells(i, 14).Value)
                Case Is = "EA_CPC", "EA_DPD"
                    ActiveSheet.Cells(i, 42).Value = "XX"
                Case Else
                    Cells(i, 42) = "Le champ N est vide"
            End Select
        End If
Suivant:
    Next i
End Sub


A tester
Cdlt
1
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
26 oct. 2015 à 17:30
Bonjour ,
non c'est le contraire si l'un de ces cellules la est vide on met pas un XX
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
26 oct. 2015 à 19:23
Bonsoir
-non c'est le contraire si l'un de ces cellules la est vide on met pas un XX-
, donc, d'après votre demande initiale, on met un message d'erreur avec le nom des colonnes correspondantes vides, dans le cas contraire(si toutes ces cellules sont pleines) on met un XX, il me semble pourtant bien que c'est ce que j'ai fait.
Si cela ne correspond pas, pouvez-vous mettre un extrait de votre fichier (sans données confidentielles) sur cjoint.com, avec des exemples précis de ce que vous attendez.?
Cdlt
1
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
Modifié par r4944 le 28/10/2015 à 18:20
salut vous avez bien raison , mais le probléme c'est que je traite beaucoup de conditions

vous trouverez en piece jointe mon fichier


- je voulais colorier et envoyer un message d'erreur dans le cas ou il y a une ou plusieurs cellules qui sont vides a partir d'une sélection de rangées dèja donnè







          
For q = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Set MaPlage = Range("A:H, J:R").Rows(q)
If CStr(ActiveSheet.Cells(q, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" _
And WorksheetFunction.CountIf(MaPlage, "") = 0 Then
Select Case UCase(ActiveSheet.Cells(q, 14).Value)
Case "INA_CIN"

ActiveSheet.Cells(q, 42).Value = "XX"
End Select




End If
Next q
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 oct. 2015 à 18:41
Bonsoir
"mais le probléme c'est que je traite beaucoup de conditions" d'accord, quelles sont -elles?
"vous trouverez en piece jointe mon fichier" le petit encart que vous avez rajouté n'est pas un fichier.
Décrivez vraiment tous ce que vous voulez avec le plus de précisons possibles en vous aidant d'exemples concrets.
L'idéal étant de déposer un extrait de votre fichier, sans données confidentielles, sur cjoint.com avec des commentaires clairs et précis sur ce que vous attendez.
Cdlt
0