Condition ''IsEmpty'' sur l'ensemble d'un tableau (plutôt qu'individuel)

Bonjour,

Je viens ici car j'ai besoin d'aide sur un problème avec le code que je fais actuellement. Je n'ai pas le fichier sous les yeux mais vu que j'arrête pas d'y penser...

J'ai un tableau Excel dont j'utilise les données pour remplir un formulaire Intranet.
Le tableau fait environ 150lignes et tout se passe bien quand chaque cellule a une valeur.
Le problème survient quand il y a des cellules vide. Dans ce cas, la macro va indiqué ''Undefined'' sur le formulaire intranet.

J'avais essayé de régler le problème avec le code suivant mais au final il faut que les case vide reste vraiment vide. (donc le code suivant ne fonctionne pas)

For Each Cell in CoL
If IsEmpty(Cell) Then
Cell.value='' ''
end if
Next Cell

(CoL correspond a la colonne des 150 cellules)

Mon code est plutôt simple et se présente donc comme cela (avec quelques subtilité mais je l'ai 150 fois)

With CoL

idoc.all.t1.value = .Row(26)
idoc.all.t2.value = .Row(27)

End With

Donc la solution que je pense faire demain c'est de faire 150fois la ligne suivante :

If not IsEmpty(.Row(XX)) Then
idoc.all.tx.value= = .Row(XX)
End If

Est ce qu'il y aurait une solution que je ne vois pas qui m'éviterait de faire ca pour chaque ligne mais pour l'ensemble des ligne ?

Merci d'avance

Bonjour,

Est-ce un formulaire qui renseigne un tableau ou un tableau renseignant un formulaire ?

Vous pouvez déjà aisément faire un boucle de ce typê afin de ne pas répeter 150 fois la même chose et alléger la lecture de votre code

For i = 0  to 150
If not IsEmpty(.Row(i)) Then
idoc.all.tx.value= = .Row(i)
End If
Next

Mais je pense que le code est largement simplifiable, vous pouvez aussi envisager un "On Error Go To" vers une macro complémentaire d'éxecution. Tout dépend du contexte (d'où ma première question) et le besoin exprimé (l'action en cas de rencontre d'une cellule vide).

Cdlt,

Bonjour et merci beaucoup pour ton aide.

C'est donc un tableau renseignant un formulaire intranet.

Le problème c'est que j'ai l'impression que je ne peux pas utiliser For i=1 to 150.
En effet, le formulaire en ligne comprend de nombreuses case (tx)

La case t1 correspond par exemple au nom (.Row26) , la t4 au prénom (.Row27), une autre va correspondre a des commentaires et ainsi de suite. (La case t5 peut ne pas exister). Il est donc important que la ligne 26 soit assignée a la case t1 et que la ligne 27 a la case t4.

L'autre problème :
Le formulaire intranet contient un tableau. Ce tableau est généré dans un ordre aléatoire car chaque item a la même priorité d'affichage sur l'intranet. Moi pour contrer ce problème, j'ai extrait chaque item du tableau (dans RngCell) et je lui donne une valeur (z) en fonction de sa position dans le tableau. Ensuite pour chaque item (Piscine/Cardio/etc) j'ai fais un ''bloc de code'' pour qu'il (formulaire intranet) lui soit associé les bonnes lignes du tableau Excel :

With CoL

idoc.all.t1.value = .Row(26)
idoc.all.t2.value = .Row(27)

'...etc...

For Each Cell in RngCell
IF Cell.Value= ''Piscine'' Then
z = Cell.Offset (0,-1).Value
idoc.all.f1(z).value = .Row(34)
Str = .Row(35).value
idoc.all.f2(z).value = Str
End If
Next Cell

For Each Cell in RngCell
IF Cell.Value= ''Cardio'' Then
z = Cell.Offset (0,-1).Value
idoc.all.f1(z).value = .Row(45)
Str = .Row(46).value
idoc.all.f2(z).value = Str
End If
Next Cell

'...etc...

End With

(J'utilise une variable Str pour transférer les dates)

Ce qui serait super, ce serait ''d'encadrer'' toutes ces lignes de codes avec une condition du genre :

DANS CoL :
Ne pas donner la valeure ''undefined''
ou
''si la valeur est '' '' (espace) ne pas alimenter intranet''. (vu qu'il est facile de remplir les cases vides avec un espace)

Bonjour,

Si c'est un tableau qui renseigne un formulaire alors peut importe, tu peux utiliser une boucle, les références de lignes étant automatiques sous EXCEL et non supprimables, ça de devrait pas générer d'erreur.

Je pense sincèrement que la première chose à faire demain sera de nous joindre un bout de fichier afin de se représenter la chose, car là c'est un travail de mémorisation et d'imagination trop important.

A partir de là nous pourrons avancer.

Rechercher des sujets similaires à "condition isempty ensemble tableau plutot individuel"