Vérifier des champs vides

r4944 Messages postés 136 Statut Membre -  
Frenchie83 Messages postés 2254 Statut Membre -
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

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. r4944 Messages postés 136 Statut Membre
       
      Bonjour ,
      non c'est le contraire si l'un de ces cellules la est vide on met pas un XX
      0
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. r4944 Messages postés 136 Statut Membre
       
      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
  3. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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