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.
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.
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.
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
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?
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?
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.
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 ?
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.