1. I'd change the <<<<<< marked line. I'm not sure but VBA might interpret that as (50 <= Width) as = True and (True < 100)

2. All three tests have (Grith <= 165) so I'm not surprised that Grith = 180 fails



Option Explicit
Sub ParcelDelivery1()
    Dim Weight As Double, Lnth As Double, Width As Double, Height As Double, Girth As Double
    
    Dim TypeA As Boolean, TypeB As Boolean, TypeC As Boolean
    
    'l am gonna use the numbers such that i get type C.
    'So lets say weight is 100 lbs , length is 100 , bread is 20 and height is 20 .
    'So girth is 180. This should qualify for C type .
    'However, on running the code , I get B type. What am i doing wrong?
    
    
    Weight = 100            '   Me.TextBox31.Value
    Lnth = 100              '   Me.TextBox32.Value
    Width = 20              '   Me.TextBox33.Value
    Height = 20             '   Me.TextBox34.Value
    
    Girth = Lnth + (2 * (Width + Height))
    
    
    If (Weight < 50) And (Girth <= 165) Then
        TypeA = True
    Else
        TypeA = False
    End If
    
    If (50 <= Weight) And (Weight < 100) And (Girth <= 165) Then  '   <<<<<<<<<<<<<<<<<<<<<<<<<
        TypeB = True
    Else
        TypeB = False
    End If
    
    If (100 <= Weight) And (Girth <= 165) Then
        TypeC = True
    Else
        TypeC = False
    End If
    
    If TypeA Then
        MsgBox "Type A"
'        Dim pdA As Range
'        Set pdA = ActiveDocument.Bookmarks("t1").Range
'        pdA.Text = "A"
    
    
    ElseIf TypeB Then
        MsgBox "Type B"
'        Dim pdb As Range
'        Set pdb = ActiveDocument.Bookmarks("t1").Range
'        pdb.Text = "B"
    
    ElseIf TypeC Then
        MsgBox "Type C"
'        Dim pdc As Range
'        Set pdc = ActiveDocument.Bookmarks("t1").Range
'        pdc.Text = "C"
    End If
End Sub