• Initiateur de la discussion Initiateur de la discussion m.alhalli
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😕

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
 
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
 
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 @+
 
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
 
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 😕😕

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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
3
Affichages
599
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
233
Retour