Syntaxe Code

B

Ben

Guest
Bonjour le forum,
Je viens vers vous aujourd'hui pour un problème de syntaxe dans un code. Bien qu'étant un code destiné à Access je pense que le mécanisme est le même. je vous explique le problème:
J'ai un tableau dans lequel je compare 2 champs (Ch1 et Ch2 =80% du montant cumulé)
- Si Ch1<Ch2 alors je vais à l'enregistrement suivant,
- Si Ch1=Ch2 alors je recopie l'enregistrement dans une autre table.
- Si Ch1>Ch2 alors
- Si c'est le premier enregistrement, je le recopie et je passe à l'enregistrement suivant
sinon je reviens à l'enregistrement précédent, je le recopie et je passe à l'enregistrement suivant et je le recopie.
en conclusion je veux pouvoir récupérer les enregistrements sur le critère des 'articles' encadrant 80% si ce n'est pas 80%.
je vous envoie un fichier excel afin d'avoir les données et le code dans le module. attention c'est de l'Access le fichier Xls n'est qu'un support

Merci de votre aide.
[file name=Testaccess.zip size=17725]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Testaccess.zip[/file]
 

Pièces jointes

  • Testaccess.zip
    17.3 KB · Affichages: 8
  • Testaccess.zip
    17.3 KB · Affichages: 7
  • Testaccess.zip
    17.3 KB · Affichages: 9
S

soft

Guest
Il manque 2, 3 infos pour mieux comprendre

C'est quoi la 2e table ? (Ch1=Ch2) oùt il faut récupérer les données, il faut ajouter, écraser ?

Voilà un code qui mets les données dans la Feuil2

Sub NewComp()
Dim I As Long, J As Long
I = 2
J = 2
While Sheets('Feuil1').Range('A' & I).Value <> ''

If Sheets('Feuil1').Range('G' & I).Value = Sheets('Feuil1').Range('F' & I).Value Then
'on recopie
Sheets('Feuil2').Range('A' & J & ':' & 'K' & J).Value = Sheets('Feuil1').Range('A' & I & ':' & 'K' & I).Value
J = J + 1
ElseIf Sheets('Feuil1').Range('G' & I).Value > Sheets('Feuil1').Range('F' & I) Then
'C'EST LE MEME ARTICLE QUE LE PRECEDENT
If Sheets('Feuil1').Range('A' & I).Value = Sheets('Feuil1').Range('A' & I - 1).Value Then
Sheets('Feuil2').Range('A' & J & ':' & 'K' & J).Value = Sheets('Feuil1').Range('A' & I - 1 & ':' & 'K' & I - 1).Value
'C'EST PAS LE MÊME
Else
Sheets('Feuil2').Range('A' & J & ':' & 'K' & J).Value = Sheets('Feuil1').Range('A' & I & ':' & 'K' & I).Value
End If
J = J + 1
End If
I = I + 1
Wend
End Sub
 
B

ben

Guest
Bonsoir le forum,
Soft,

Je te remercie de ta réponse.
Mais le code n'est pas pas utilisable sur xls. La feuille n'est qu'un extrait de la table source du code en Access.
Comme je l'ai précisé lors de mon post, je souhaite une aide sur le maniement des conditions imbriquées avec select case ou if, then, elseif,..etc
Merci
 

soft

XLDnaute Occasionnel
Salut Ben,
C'est un forum sur Excel et j'ai pensé que tu voulais le convertir.

Pas possible de tester ton code qui fait référence à des objets DAO avec Excel. Il nous faut donc le convertir passablement; ce que j'ai fait en le simplifiant.

Il y a sûrement un Forum plus adapté à ton problème.
 
B

Ben

Guest
Bonsoir le Forum,
Soft,
Je te remercie encore une fois mais j'espérais que les habitués des codes sur xls pourraient décrypter les erreurs qui se sont glissées dans le code. En effet je pensais que la lecture du code suffisait.
Merci encore.
 

Discussions similaires

Réponses
17
Affichages
487

Statistiques des forums

Discussions
312 798
Messages
2 092 219
Membres
105 293
dernier inscrit
Hélène Power