Problème de sélection de ligne vide dans tableau dynamique

Bonjour,

je travaille sur des données mises sous forme de tableau (Accueil->Mettre sous forme de tableau).

Le tableau se remplit du haut vers le bas. Certaines cellules ne sont pas complétées immédiatement, et restent vides jusqu'à ce que l'opérateur souhaite les compléter. Entre temps la ligne suivante est également partiellement complétée mais jamais la cellule en dessous de celle en attente.

Une ligne de code doit me permettre d'affecter une valeur, ici la variable temp, aux cellules en attente. Le principe est simple, on part du bas de la feuille et on remonte sur le long de la colonne souhaitée jusqu'à la cellule en dessous de la dernière renseignée.

Voici ce qui devrait marcher avec l'exemple d'une colonne d'intitulée "BIO_CONVENTIONNEL":

Sheets("RESULTATS ANALYSES").Cells(Range("bal_bas_analyses").Row, Range("BIO_CONVENTIONNEL").Column).End(xlUp).offset(1 , 0).Value = temp

or vu que cette cellule est déjà dans le tableau et non dans la première ligne hors du tableau, cela ne marche pas.

J'ai donc contourné avec le code suivant.

Sheets("RESULTATS ANALYSES").Cells(Range("bal_bas_analyses").Row, Range("BIO_CONVENTIONNEL").Column).End(xlUp).End(xlUp).End(xlDown).Value = temp

cela fonctionne mais ne me satisfait pas: je suis sur qu'il y a une solution du genre option du tableau ou autre pour retravailler avec le offset.

Merci d'avance de votre aide.

Pierre

Bonjour Pierre,

Normalement pour connaitre la 1ère ligne vide du tableau il suffit de faire

Sheets("RESULTATS ANALYSES").Range("BIO_CONVENTIONNEL").End(xlUp).Offset(1, 0).Row

Sans fichier, je ne peux pas tester, à toi de voir

A+

Bruno,

Voici un fichier épuré: la macro est dans UserForm_typelait_analyses, déclenchée par CommandButton1_Click.

Encore merci.

Pierre

17bug-tableau.xlsm (75.25 Ko)

Re Bruno,

Pour alimenter le contrôle RefEdit je t'ai mis un onglet DONNEES SOURCES BRUNO, tu peux ainsi sélectionner les colonnes de A à W pour dérouler la macro.

Pierre

Re,

Donc ma ligne de code était bien la bonne, explication : Comme il s'agit d'un tableau Excel, c'est un objet à part entière, il faut dont chercher la dernière ligne de la plage nommée de ta colonne

  Sheets("RESULTATS ANALYSES").Range("BIO_CONVENTIONNEL").End(xlUp).Offset(1, 0).Value = temp
  Sheets("RESULTATS ANALYSES").Range("Traitement_thermique").End(xlUp).Offset(1, 0).Value = temp2

Sinon tu te retrouves en dehors de ton objet tableau, dans l'objet feuille.

Nota 1 : je t'ai rajouté un petit code dans ta feuille "RESULTATS ANALYSES", comme ça impossible de saisir quelque chose dans les cellules jaunes

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("Y:AB"), Target) Is Nothing Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
    MsgBox "Vous ne devez pas modifier les cellules en jaune !", vbCritical, "OUPS...."
  End If
End Sub

Nota 2 : Dans ta colonne V "litrage" je t'ai mis un Zéro sinon ton USF BUG puisque tu déclare ton litrage en Integer (entier numérique)

A+

Merci beaucoup pour ta réponse et tes amélios, c'est très sympa.

Bonne journée!

Pierre

Rechercher des sujets similaires à "probleme selection ligne vide tableau dynamique"