Voici une petite macro qui, si le curseur est dans un tableau, parcourt toutes les cellules, ligne par ligne, colonne par colonne et affiche un message lorsqu'une cellule rencontrée est vide et sélectionne cette cellule.
Sub Testtablo()
Dim ncol As Integer, nli As Integer
If Selection.Information(wdWithInTable) Then
For ncol = 1 To Selection.Tables(1).Columns.Count
For nli = 1 To Selection.Tables(1).Rows.Count
If Len(Selection.Tables(1).Cell(ncol, nli).Range.Text) = 2 Then
Selection.Tables(1).Cell(ncol, nli).Select
MsgBox "Cellule (colonne" & CStr(ncol) & " , " & "ligne" & CStr(nli) & ") vide.", vbOK, "Balayage de tableau"
Else
End If
Next
Next
End If
End Sub
Si le traitement doit se faire uniquement dans la colonne où se trouve le curseur :
La macro suivante partourt toutes les lignes de la colonne où se trouve le curseur, affiche un message lorsqu'elle rencontre une cellule vide, et remplit cette cellule par un texte (ici "Mon texte").
Sub Testtablo()
Dim nli As Integer, NumCol As Integer
If Selection.Information(wdWithInTable) Then
NumCol = Selection.Information(wdEndOfRangeColumnNumber)
For nli = 1 To Selection.Tables(1).Rows.Count
If Len(Selection.Tables(1).Cell(nli, NumCol).Range.Text) = 2 Then
Selection.Tables(1).Cell(nli, NumCol).Select
MsgBox "Cellule vide (Ligne " & CStr(nli) & " , " & "Colonne " & CStr(NumCol) & ").", vbOK, "Balayage de tableau"
Selection.InsertAfter "Mon texte"
Else
End If
Next nli
End If