Microsoft 365 Trouver la première cellule vide sur une range prédéfinie

SPGoder

XLDnaute Occasionnel
Bonjour
Je souhaiterai savoir comment trouver la première cellule vide dans un "tableau sur une feuille".
Sachant qu'il y a d'autres tableaux en dessous,. je ne peux me servir de la colonne en entier pour trouver la première cellule vide avec :

VB:
 Feuille1. .Range("A65536").End(xlUp).Row + 1

J'ai trouvé une parade en faisant :
VB:
    Dim j As Integer, L As Integer
 
        For j = 2 To 15
            If Feuil1.Cells(j, "A").Value = "" Then L = j: Exit For
        Next j
        Feuil1.Cells(j, "A") = TextBox1.Value

ça fonctionne bien, mais je suis sur qu'il existe une méthode plus simple
Petit fichier test pour l'exemple
merci de votre aide
 

Pièces jointes

  • Premier ligne vide sur range prédéfinie.xlsm
    22.2 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
re
et qu'est ce que l'on s'en fout' qu'il soit décalés
les tableaux structuré se mettent ajour tout seul
par exemple si le tableau 2 est en A20:E30 et que tu ajoute une ligne dans le tableau1
l'adresse du tableau2 va changer pour A21:A31 et cela tout seul
et comme on a pas besoins de savoir le xlup ou le xldown on est tranquille
mais pour ajouter une ligne se sera toujour la meme ligne de code
Set R = Range("tableau1").ListObject.ListRows.Add.Range 'se sera toujours ça
ou
Set R = Range("tableau2").ListObject.ListRows.Add.Range 'se sera toujours ça

cela ne change jamais
du coup tu va avoir beaucoup de temps pour la sieste puis qu'il n'y a plus de gym cérébro-spinale
 

TooFatBoy

XLDnaute Barbatruc
donc pour mettre la donnée en "B" c'est simple
VB:
Private Sub CommandButton3_Click()
Dim R As Range
Set R = Range("tableau2").ListObject.ListRows.Add.Range
'MsgBox "une ligne à été ajouté au tableau2 " & vbCrLf & "elle se trouve en feuil1 .row " & R.Row
r(2).value="taratata"
End Sub
terminé
Il me semble, vu de mon tél, que tu ajoutes une ligne, et que ce n'est pas ce qui est demandé.

Pourrais tu m'indiquer comment rajouter une donnée à un endroit précis du tableau, exemple je veux rajouter ma donnée en Colonne B (à la première cellule vide)
Il est demandé de mettre la donnée dans la première cellule vide de la colonne B. Ce n'est donc pas forcément sur une nouvelle ligne.

Mais c'est peut-être la question qui est mal posée. 🤔
 

patricktoulon

XLDnaute Barbatruc
Il me semble, vu de mon tél, que tu ajoutes une ligne, et que ce n'est pas ce qui est demandé.


Il est demandé de mettre la donnée dans la première cellule vide de la colonne B. Ce n'est donc pas forcément sur une nouvelle ligne.

Mais c'est peut-être la question qui est mal posée. 🤔
et oui elle a été mal posé
et puis de toute façon a qui viendrait l'idée de laisser un tableau avec des lignes vides entre deux pleines
et il coule de source selon moi que quand on cherche le xlup ou xldown c'est pour y aller mettre une bistouille
il n'y a aucun soucis a ce que les ltableaux se decalent au fur et a mesure des ajout
c'est interne ca se fait tout seul
maintenant si c'est un problème visuel ou esthétique là c'est autre chose
 

SPGoder

XLDnaute Occasionnel
Patrick, je comprends ce que tu essayes de me faire comprendre, mais dans mes code VBA, je renseigne d'autre éléments à des endroits précis, donc non, je ne peux pas décaler à souhait, car le code ne va pas se mettre à jour automatiquement
Je sais que tu vas me dire que du coup c'est la conception de la feuille et des tableaux qui est mal structurés, mais je ne peux pas faire ce que je veux, car se sont des feuilles avec architecture figées
 

TooFatBoy

XLDnaute Barbatruc
Patrick, je comprends ce que tu essayes de me faire comprendre, mais dans mes code VBA, je renseigne d'autre éléments à des endroits précis, donc non, je ne peux pas décaler à souhait, car le code ne va pas se mettre à jour automatiquement
Ben si justement... 😉

Ou du moins, grâce aux tableaux structurés, le code n'a pas besoin d'être modifié : ça fonctionnera quel que soit l'emplacement des tableaux structurés puisque tu y accèdes par leurs noms et non par leurs positions.

Dans certains cas tu peux même changer ton tableau structuré de feuille, il continuera de se remplir correctement sans avoir besoin de modifier le code VBA.
 

patricktoulon

XLDnaute Barbatruc
Patrick, je comprends ce que tu essayes de me faire comprendre, mais dans mes code VBA, je renseigne d'autre éléments à des endroits précis, donc non, je ne peux pas décaler à souhait, car le code ne va pas se mettre à jour automatiquement
Je sais que tu vas me dire que du coup c'est la conception de la feuille et des tableaux qui est mal structurés, mais je ne peux pas faire ce que je veux, car se sont des feuilles avec architecture figées
a ben alors tu a un serieux problème de conception de feuille
allez une derniere intervention après je vous laisse
regarde bien les deux cellule en rouge qui ne font pas partie destableaux
tu les vois bouger toi ?
demo.gif
 

SPGoder

XLDnaute Occasionnel
Évidement, elles ne sont pas dans les colonne A à E.
C'est ce que je disais plus haut, dans la conception de la feuille, il y a des données qui sont renseignées par le code, et qui sont dessous (pour faire simple, car c'est un peu plus complexe)
Donc il y a une zone d'une dizaine de lignes qui sont remplissables suivant certains critère donc ma question initiale était de savoir la première ligne vide de ces dizaines de lignes
Mais oui, la feuille est mal structuré par rapport à l'utilisation des "tableaux". Mais je n'ai pas le choix pour l'instant
 

TooFatBoy

XLDnaute Barbatruc
Pardon, mais ce n'est pas très clair ton histoire de décalage des tableaux du dessous : à partir du moment où tu ajoutes une ligne, que tu aies des tableaux structurés ou pas, ça va forcément décaler le reste vers le bas.

Mais peut-être que ta feuille a des tableaux qui ont chacun une taille fixe, avec le bon nombre de lignes, que celles-ci soient renseignées (en partie ou en totalité) ou vides ?
 
Dernière édition:

SPGoder

XLDnaute Occasionnel
Pardon, mais ce n'est pas très clair ton histoire de décalage des tableaux du dessous : à partir du moment où tu ajoutes une ligne, que tu aies des tableaux structurés ou pas, ça va forcément décaler le reste vers le bas.
A l'origine et comme dans l'exemple du fichier que j'ai fourni, je voulais simplement connaitre la première ligne vide d'un tableau fixe pour pouvoir le remplir.
Ensuite et à juste raison, on me propose la gestions des tableaux structurés car nettement plus simple à utiliser
Mais dans les exemple de patrick, ce sont des insertions de ligne d’où ma question peut on remplir le tableau sans décaler les lignes (à cause de ce qui est dessous le tableau)

Mais peut-être que ta feuille a des tableaux qui ont une taille fixe, avec le bon nombre de lignes, que celles-ci soient renseignées (en partie ou en totalité) ou non renseignées ?
C'est exactement la raison

une idée: faire les tableaux isolés sur une autre feuille et les utiliser comme tableau structuré, et dans ma feuille originale, j'inscris dans les cellules concernées "=feuill_tableau!C3" par exemple pour remplir comme je le souhaite ma feuille d'origine

Désolé, je n'ai pas toujours les bon termes, qui peut parfois prêter à confusion
 

TooFatBoy

XLDnaute Barbatruc
A l'origine et comme dans l'exemple du fichier que j'ai fourni, je voulais simplement connaitre la première ligne vide d'un tableau fixe pour pouvoir le remplir.
Dans ton cas l'utilisation des tableaux structurés n'apporte probablement pas grand chose, à mon avis.

Pour moi, la réponse de BrunoM45 est la bonne.
Mais il faut lui ajouter la gestion des "extrémités" : première ligne vide, dernière ligne déjà remplie, lors de la recherche d'un trou dans le tableau.
Il faut aussi être sûr de faire la recherche sur une colonne sans trou, lors de la recherche de la première ligne vide.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
de toute façon si tu a des cellule que tu utilise en dehors de tes tableaux et en dessous c'est mort , mort ,mort ,mort
je ne peux être plus clair
sinon ca va être une usine a gaz ton truc
toi qui voulais économiser de la gym cérébro, ben là tu es gâté mon pauvre ami
c'est tout tout tout en de-pis du bon sens
je ne sais pas si c'est pour du pro mais dans ma boite un fichier comme ça va direct dans le dossier "recycle" si tu vois ce que je veux dire
tu a tout pour faire quelque chose de propre
donc
soit tu te lance dans une nouvelle conception de ta feuille
soit tu laisse un de tes collègue de boulot s y coller

ci joint une ébauche de travail(ajout/modif)
 

Pièces jointes

  • ebauche de travail.xlsm
    19.7 KB · Affichages: 2

Discussions similaires

Réponses
0
Affichages
153

Statistiques des forums

Discussions
312 239
Messages
2 086 503
Membres
103 236
dernier inscrit
Menni