Ecrire Plus Simple

m.alhalli

XLDnaute Nouveau
Bonjour le forum,

j'ai un petit problème et comme son nom l'indique, ce que j'ai plusieurs fonction qui se repete et je demande est ce qu'il y a une possibilité de les regroupés toutes :confused:

Code:
Label1.Caption = Feuil1.Cells(32, 3)
Label2.Caption = Feuil1.Cells(34, 3)
Label3.Caption = Feuil1.Cells(35, 3)
Label4.Caption = Feuil1.Cells(36, 3)
Label5.Caption = Feuil1.Cells(37, 3)
Label6.Caption = Feuil1.Cells(38, 3)
Label7.Caption = Feuil1.Cells(39, 3)
Label8.Caption = Feuil1.Cells(40, 3)
Label9.Caption = Feuil1.Cells(41, 3)
Label10.Caption = Feuil1.Cells(42, 3)
Label11.Caption = Feuil1.Cells(43, 3)
Label12.Caption = Feuil1.Cells(44, 3)
Label13.Caption = Feuil1.Cells(45, 3)
Label14.Caption = Feuil1.Cells(46, 3)
Label15.Caption = Feuil1.Cells(47, 3)
Label16.Caption = Feuil1.Cells(48, 3)
Label17.Caption = Feuil1.Cells(49, 3)
Label18.Caption = Feuil1.Cells(50, 3)

Label19.Caption = Feuil1.Cells(52, 3)
Label20.Caption = Feuil1.Cells(53, 3)
Label21.Caption = Feuil1.Cells(54, 3)
Label22.Caption = Feuil1.Cells(55, 3)
Label23.Caption = Feuil1.Cells(56, 3)

Code:
res2 = daveReadBytes(dc, daveDB, 3, 20, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
        Cells(32, 3) = daveGetS16(dc)
     Next
    End If
'***********************
 res2 = daveReadBytes(dc, daveDB, 3, 22, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(33, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 24, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(34, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 26, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(35, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 28, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(36, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 30, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(37, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 38, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(38, 3) = daveGetS16(dc)
     Next
    End If
    
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 46, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(39, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 62, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(40, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 78, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(41, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 96, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(44, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 104, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(45, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 112, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(46, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 120, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(47, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 128, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(48, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 136, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(49, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 3, 158, NbBytes, 0)
    If res2 = 0 Then
       
        For x = 0 To NbBytes - 2
         Cells(50, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 10, 114, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(52, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 10, 116, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(53, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 10, 118, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(54, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 10, 120, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(55, 3) = daveGetS16(dc)
     Next
    End If
'***********************
     res2 = daveReadBytes(dc, daveDB, 10, 122, NbBytes, 0)
    If res2 = 0 Then
        
        For x = 0 To NbBytes - 2
         Cells(56, 3) = daveGetS16(dc)
     Next
    End If

Merci d'avance
 
G

Guest

Guest
Re : Ecrire Plus Simple

bonjour Hali,

En ce qui concerne les labels si tes labels vont réellement de Label1 à Label23 et les cellules de la ligne 32 à la ligne 56.

Code:
dim i as integer
 
For i=1 to 23
     Me.Controls("Label" & i).Caption=Feuil1.Cells(31+1, 3)
Next i

Pour la fonction daveReadBytes(dc, daveDB, 3, 112, NbBytes, 0)
voir si le 4ème argument ne peut pas être incrémenter de façon plus régulière. L'idée serait d'obtenir quelquechose comme ceci:

Code:
Dim Increment as integer
 
For Increment=??? to ??? [COLOR=darkgreen]Step N  ' N = un pas de boucle facultatif[/COLOR]
 
    res2 = daveReadBytes(dc, daveDB, 3, I[COLOR=red]ncrement[/COLOR], NbBytes, 0)
    If res2 = 0 Then
        
     For x = 0 To NbBytes - 2
         Cells([COLOR=red]ici calcul d'un increment de ligne[/COLOR], 3) = daveGetS16(dc)
     Next
    End If

Next Increment

Sans pas régulier il est difficile de faire autrement.

A bientôt
 

m.alhalli

XLDnaute Nouveau
Re : Ecrire Plus Simple

Re,
Tout d'abord je te remercie pour ton aide.

Pour le premier code ca n'a pas fonctionné puisqu'il prend le contenu de la première cellule et il le copie dans toute les cellule, donc peut être il incrémente pas.

j'ai essayé de faire ceci sachant que j'ai pas changé grand chose :(, mais ca ne marche toujours pas

Code:
dim i as integer
 
For i=1 to 23
     Me.Controls("Label" & i [COLOR="Red"]+ 1[/COLOR]).Caption=Feuil1.Cells(31+1, 3)
Next i

Pour le deuxième code, il s'agit d'un pas irrégulier donc d'aprés ce que tu m'as si ca va être difficile on laisser comme ça.

Merci et @+
 

TooFatBoy

XLDnaute Barbatruc
Re : Ecrire Plus Simple

Essaye ça :
Code:
dim i as integer
 
Label1.Caption = Feuil1.Cells(32, 3)
For i=2 to 18
     Me.Controls("Label" & i).Caption=Feuil1.Cells(32+i, 3)
Next i
For i=19 to 23
     Me.Controls("Label" & i).Caption=Feuil1.Cells(33+i, 3)
Next i
 

m.alhalli

XLDnaute Nouveau
Re : Ecrire Plus Simple

Re,

merci beaucoup

ca a marché mais je comprend pas pourquoi la deuxième partie du code concernant le
Code:
Caption=Feuil1.Cells(33+i, 3)
ca commence par 33 et pourtant elle doit commencer par 52 :confused::confused:

Peux-tu m'expliqué stp?


@+

Edit : C'est bon j'ai compris merci

en fait j'ai du changé pour que ca marche, pour le i= 2 to 18; j'ai remplacé le 2 par 0 ;)

Merci
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Ecrire Plus Simple

Salut,

Parceque i commence à 19 et que 33+19 ça fait bien le 52 que tu attends. ;)

Code:
[B][COLOR="Red"]For i=19[/COLOR][/B] to 23
     Me.Controls("Label" & i).Caption=Feuil1.Cells([COLOR="Blue"][B]33+i[/B][/COLOR], 3)
Next i
 

Statistiques des forums

Discussions
312 677
Messages
2 090 821
Membres
104 677
dernier inscrit
soufiane12