DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

mouftie

XLDnaute Junior
Bonjour,
J'ai l'habitude d'utiliser la commande
Code:
Dim DerLg As Long
DerLg = Sheets("infos").Range("D65000").End(xlUp).Row
pour aller à la dernière ligne vide de mon tableau ; mais je travaille actuellement sur un tableau qui a été créé avec le menu insertion / Tableau d'excel.
Quand j'applique mon DerLg, DerLg renvoie la dernière ligne du tableau et non la première cellule vide ; j'ai également essayé de me mettre dans le tableau et d'utiliser
Code:
Dim DerLg As Long
DerLg = Sheets("infos").Range("D5").End(xlDown).Row
, mais Derlg prend la même valeur que précédement...
Y a t-il qq chose à rajouter ?
 

mouftie

XLDnaute Junior
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Merci Pierrot
Avec votre code, je me retrouve une cellule en dessous du tableau ; du coup, j'ai essayé
Code:
Dim DerLg As Long
DerLg = Sheets("infos").Range("D5").End(xlDown) (2).Row
ça fonctionne...
Merci, j'aurai préféré votre solution, car s'il y a des cellules vides dans le tableau, on risque des erreurs...
 

ROGER2327

XLDnaute Barbatruc
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Bonjour à tous.


Un exemple dans le classeur joint.​


ℝOGER2327
#7068


Jeudi 19 Sable 141 (Gravidité de Mère Ubu - fête Suprême Tierce)
29 Frimaire An CCXXII, 6,8337h - olive
2013-W51-4T16:24:03Z
 

Pièces jointes

  • Sélection dans un tableau.xlsm
    19.5 KB · Affichages: 47

mouftie

XLDnaute Junior
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Bonjour Roger,
Merci pour votre réponse.
J'espère que vous avez passé de bonne fête de Noël.
Je ne comprends pas bien comment cela fonctionne, votre macro sélectionne la dernière cellule de la 1ère colonne
Sub toto()
Dim t As ListObject
Set t = ActiveSheet.ListObjects("Tableau1")
With t.DataBodyRange.Cells(t.ListRows.Count, 1) 'Compte le nb de ligne du Tablo
'Sélectionne la 1ère Colonne & Dernière ligne du Tablo ?
If IsEmpty(.Value) Then .End(xlUp).Select Else .Select
End With
End Sub

Personnellement, je cherche une variable que je pourrais utiliser plusieurs fois, pour remplir mon tableau de données.
Encore merci
 

ROGER2327

XLDnaute Barbatruc
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Re...


Bonjour Roger,
Merci pour votre réponse.
J'espère que vous avez passé de bonne fête de Noël.
(...)
Ce n'était pas mal, merci.​
(...)
Je ne comprends pas bien comment cela fonctionne, votre macro sélectionne la dernière cellule de la 1ère colonne
(...)
La procédure "ne sélectionne pas la dernière cellule de la 1ère colonne" mais elle sélectionne la dernière cellule non vide de la première colonne du tableau.

En fait, ma contribution se limitait à montrer une équivalent de​
VB:
DerLg = Sheets("infos").Range("D65000").End(xlUp).Row
applicable à un Tableau. Sur cette base, bien des adaptations sont possibles...

Pour le reste, je n'ai pas compris ce que vous voulez, car vous parlez de rechercher tantôt​
la dernière ligne vide de mon tableau
tantôt​
la première cellule vide
En attendant d'éventuelles précisions, je joins un classeur qui montre "en parallèle" le travail sur un tableau (à gauche dans l'onglet Feuil1) et sur une plage (à droite).
La feuille est protégée sans mot de passe.

Vous pouvez modifier les données dans le Tableau et voir ce qui se passe.​


Bonne soirée.


ℝOGER2327
#7082


Jeudi 26 Sable 141 (Monsieur Sisyphe - fête Suprême Quarte)
6 Nivôse An CCXXII, 7,8698h - lave
2013-W52-4T18:53:15Z
 

Pièces jointes

  • Sélection dans un tableau (2).xlsm
    29.1 KB · Affichages: 42
Dernière édition:

mouftie

XLDnaute Junior
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Bonjour Roger,
Merci pour vos explications.
Je vous renvoie un fichier type qui me sert régulièrment ; comme je n'arrive pas à intégrer l'idée de "Tableau" Excel, je m'en sors en travaillant comme avec n'importe quel tableau, sauf qu je suis obligée de commencer à déclarer Der(nière)Lg avant le Deb(ut)Lg.

Je pense que ce n'est pas la méthode à utiliser...
Merci encore de vos conseils
 

Pièces jointes

  • Tblo à remplir.xlsm
    20.3 KB · Affichages: 37

ROGER2327

XLDnaute Barbatruc
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Re...


Toujours pas certain d'avoir compris... (Par exemple, pourquoi doit-on retrouver la valeur de O4 dans E8:E17 ?)

Un essai qui ne fait pas tout à fait la même chose que votre procédure.​
VB:
Sub RemplissageDonneesDuMois()
Dim i&, t As ListObject, PremièreLigne&, DernièreLigne&
    Set t = ActiveSheet.ListObjects("Tableau1")
    With t.DataBodyRange
        With .Cells(1, 3)
            If IsEmpty(.Value) Then PremièreLigne = .Row Else PremièreLigne = .Offset(-1).End(xlDown).Offset(1).Row
        End With
        With .Cells(t.ListRows.Count, 1)
            If IsEmpty(.Value) Then DernièreLigne = .End(xlUp).Row Else DernièreLigne = .Row
        End With
        If PremièreLigne <= DernièreLigne Then
          For i = 2 To 6
            Range(Cells(PremièreLigne, .Column + i), Cells(DernièreLigne, .Column + i)).FormulaR1C1 = _
              "=INDEX(Tblo2[#Data],MATCH(RC2,Tblo2[mars-13],0)," & i & ")"
          Next

'Ligne facultative pour effacer les formules et ne garder que les valeurs :
'          With Range(Cells(PremièreLigne, .Column + 2), Cells(DernièreLigne, t.ListColumns.Count + .Column - 1)): .Value = .Value: End With

        End If
    End With
End Sub
Voyez si vous pouvez en tirer quelque chose.​


Bonne journée.


ℝOGER2327
#7084


Vendredi 27 Sable 141 (Saint Tic, conjoint - fête Suprême Quarte)
7 Nivôse An CCXXII, 5,7137h - terre végétale
2013-W52-5T13:42:47Z
 

Pièces jointes

  • Tblo à remplir-3.xlsm
    22.9 KB · Affichages: 39

mouftie

XLDnaute Junior
Re : DerLg dans un tableau1 inséré ; ma formule ne fonctionne plus

Re, Roger
Pour quelqu'un qui n'est pas sûr d'avoir compris, vous avez parfaitement compris malgré mon erreur de formule (j'ai un dollar de trop - EQUIV($B$8... au lieu de EQUIV($B8...).

c'est exactement ce que je cherchais, avec en prime la ligne facultative (qui va me servir, soyez-en certain) ;>

Je vous remercie vivement pour votre patience et vous souhaite une bonne fête de fin d'année.
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 899
Membres
103 025
dernier inscrit
sr86