Salut Salomon,
Je pense que tu dois être non seulement débutant en Windev, mais débutant tout cours 
Il y a quelques grosses erreurs de programmation dans ton code.
Bon allez faut bien débuter un jour mais je te conseille de bien suivre le guide d'autoformation de Windev et quelques principes de base en programmation tels que les boucles, les tests, etc.
Alors voici le décryptage de ton code
TableSupprimeTout(TABLE_NouvelleCommande)
sLigne est une chaîne
rNbre est un réel
rComptage est un réel
1. Ta variable rNbre n'est jamais utilisée, donc aucun intérêt de la déclarée (c'est pour cette raison que la variable est soulignée, passe avec la souris juste au dessus et regarde le message.
2. Un réel (si je comprends bien ton code) n'est pas le meilleur type pour sauvegarder le nombre d'enregistrements trouvés.
Je te conseille plutôt :
nVar est un numérique (*)
Ensuite tu dois tester le résultat de ta requête, pour voir si tout c'est bien déroulé, car si la requête ne fonctionne pas rien ne sert de continuer
bRequeteOk = HExécuteRequête(REQ_facture, hRequêteDéfaut, SAI_Client, SAI_Date1, "Nouvellecommande")
Pour un peu de clarter tu peux déclarer et initialiser une variable sur une seule ligne (ton code n'a pas d'erreur, mais on gagne une ligne)
i est un entier = HNbEnr(REQ_facture, hEtatActif)
Ensuite, on attaque la première grosse erreur
pour i=i to 1 step -1
HLit(REQ_facture, i)
sLigne = REQ_facture.DATECDE+TAB+REQ_facture.Nom_prenom+TAB+REQ_facture.prixV+TAB+ Etc.
TableAjoute(TABLE_NouvelleCommande, sLigne)
FIN
1. Tu ne peux pas avoir la même variable qui contient le nombre d'enregistrement et qui fait la boucle
pour j = i to 1 step -1
HLit(REQ_facture, j)
...
FIN
On arrive à la seconde grosse erreur
SI Droite(SAI_Date1, 1)>=31 ALORS
1. tu compares le dernier caractère et tu regardes si il est supérieur à 31 (comparer une chaine avec un numérique, c'est pas top) ensuite ce test sera toujours faux car même si tu avais un test valiide la valeur ne peut-être comprise qu'entre 0 et 9 donc elle ne sera jamais supérieur ou égale à 31
2. cela ne sert strictement à rien le bloc complet du SI, tu as déjà effectué une requête avec les mêmes paramètres, alors pourquoi refaire un test ?
Et pour finir :
i = TABLE_NouvelleCommande..Occurence
Pourquoi initialiser i, tu ne l'utilise plus après
TableTrie(TABLE_NouvelleCommande, "Table_NouvelleCommande.COL_PrixV")
C'est la colonne que tu dois mettre la table ne sert à rien puisque tu tries cette table donc faut juste mettre la colonne
TableTrie(TABLE_NouvelleCommande, "COL_PrixV")
et la dernière ligne
iImprimeEtat(ETAT_BONLIVRAISON, SAI_Date1..valeurAffichée, SAI_Client..ValeurAffichée, rComptage)
1. ..ValeurAffichée ne sert à rien
2. rComptage est passé en paramètre mais n'a jamais été initialisé
A+
Daryl
--
http://www.concept4u2.com