XL 2021 Enregistrer des données dans un tableau vide via une macro

LeLigérien

XLDnaute Nouveau
Bonjour vous tous,
Je sollicite encore vos talents ...
J'ai fait une macro qui enregistre une saisie de la feuille "Saisie des scores" sur la feuille "Datas", pour que celle-ci fonctionne quand mon tableau est vide, j'ai été obligé de créer une ligne fictive avec "####".Est ce qu'il y a une solution pour évité d'avoir cette ligne?
En vous remerciant par avance.
 

Pièces jointes

  • Classeur1.xlsm
    25.9 KB · Affichages: 5
Solution
Hello

Puisque j'ai fait, je poste
pourquoi ne pas exploiter la structure de table structurée dans ton code

ton controle de présence...j'ai l'impression, qu'il ne controle pas grand chose...,arpès..... j'ai pas creusé

vgendron

XLDnaute Barbatruc
Hello

Puisque j'ai fait, je poste
pourquoi ne pas exploiter la structure de table structurée dans ton code

ton controle de présence...j'ai l'impression, qu'il ne controle pas grand chose...,arpès..... j'ai pas creusé
 

Pièces jointes

  • Classeur1 (3).xlsm
    26.8 KB · Affichages: 3

Phil69970

XLDnaute Barbatruc
Bonjour @LeLigérien , Bernard et Vincent

Juste en passant est ce normal ceci ?

1687018194813.png


C'est qui perd gagne ton jeu ? 🤣

@Phil69970
 

LeLigérien

XLDnaute Nouveau
Merci à vous votre réponse rapide
@Dranreb : Je n'ai pas préciser que j'étais novice dans les macro, du coup j'ai pas réussi à intégrer ton code à ma macro 😅.

@vgendron : Du coup je garde ta solution de qui fonctionne parfaitement. J'ai modifié la plage pour le contrôle de présence et cela fonctionne mieux effectivement.:)

@Phil69970 : Bien vu !!!! 👍 Je n'avais pas du tout pensé à ce cas de figure. Je vais trouver autre chose.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Mais il ne faut alors plus utiliser ces archaïques End(xlUp).Row, on n'en a plus besoin avec un tableau Excel !
On écrit dans les RngLig(1, x).Value = CDbl(TextBox1.Text) par exemple …
Le plus souvent je prépare même les valeurs dans un tableau dynamique que j'appelle généralement TVL (comme Tableau des Valeurs de la Ligne), c'est plus rapide de tout écrire d'un coup à la fin par feuilleDatas.ListObjects(1).ListRows.Add.Range.Value = TVL

Mais je vois aussi que vous faites aussi une vérification sur l'ensemble du tableau. Vous auriez peut intérêt à garder le ListObject dans une variable LOt.
 
Dernière édition:

LeLigérien

XLDnaute Nouveau
Je ne l'avais pas précisé mais je suis un novice dans les macro mais j'apprends de mes erreurs tout doucement .
Mais là, j'avoue que j'ai rien compris de ce que tu m'a écris, je suis perdu:confused:
Je t'avoue que je ne crée jamais de macro de A à Z je récupère des macros que j'essai de comprendre et les modifie pour mes besoins.
Est ce que ce serais abuser de te demander de reprendre ma macro pour que je vois les différences avec la mienne?
 

LeLigérien

XLDnaute Nouveau
Ça pourrait ressembler à ça.
Merci d'avoir pris le temps ...
C'est un level au-dessus pour moi, je pense avoir compris le fonctionnement mais clairement ça me réduit le nb de ligne avec ce code.
J'aurai juste une question (peut être bête) je ne vois pas ou tu définies la feuille "datas" et le tableau "T_Résultats", ça fais une recherche dans le classeur?
Si jamais j'ai plusieurs tableau ça met le bin's?
 

Dranreb

XLDnaute Barbatruc
J'ai renommé les objets Worksheet de la rubrique Microsoft Excel Objet du projet VBA.
Comme il n'y avait qu'un seul tableau dans la feuille j'ai pris le premier et seul membre de sa collection Listobjects. S'il y en avait plusieurs il faudrait les différencier, bien sûr.
 

LeLigérien

XLDnaute Nouveau
d'aaaaaacooooord ,je ne savais pas que l'on pouvais faire ça,...
Juste pour fermer le sujet et voir si j'ai bien compris, quand tu écris :
WshSaisie.[C4:E4].Value
ça équivaut à :
Worksheets("Saisie des scores").Range("C4:E4").value
C'est bien ça ?
 

Dranreb

XLDnaute Barbatruc
Oui, tout à fait.
Ou presque, dans la mesure où (avantage) on ne provoque plus la consultation de la collection Worksheets, mais (inconvénient) on utilise par cette syntaxe la méthode Evaluate au lieu de la méthode Range.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan