note qu'avec la priorité des opérateurs, c'est inutile de mettre des parenthèses car la division est prioritaire sur l'addition ; ainsi : 32 / 8 + 6 = (32 / 8) + 6 = 4 + 6 = 10.
Pourtant ça marche dans le fichier, ou se situe mon erreur STP
*Edit: j'ai vu je fais un tour de trop...
Corrigé dans la V2
VB:
Sub L_L2()
L2 = 7
i = 3
Range("A" & i - 1) = L2 'La 1ere ligne est ici'
For L = 16 To 208 Step 8
L2 = L2 + 1
Range("A" & i) = L2
i = i + 1
Next L
End Sub
1) pour mon post #5 : je croyais que tu voulais écrire les données 8 à 208 par pas de 8 : 8 ; 16 ; 24 ; 32 ; 40 ; ... ; 208 de A2 à A27 ; et je proposais une simplification de ton code VBA, avec moins de variables.
2) pour ton post #6, vérifie d'abord que 8 à 208 par pas de 8 est bien de A2 à A27 ; donc ton code VBA écrit une donnée en trop : c'est 33, en A28 ; ci-dessous, ton fichier en retour, qui écrit 7 à 32 de A2 à A27.
VB:
Sub L_L2()
Dim L As Byte, L2 As Byte
L2 = 2: Application.ScreenUpdating = 0
For L = 8 To 208 Step 8
Cells(L2, 1) = L2 + 5: L2 = L2 + 1
Next L
End Sub
* 2 variables L et L2 seulement ; pas de variable i
* une seule instruction pour écrire la donnée :
Cells(L2, 1) = L2 + 5
au lieu de tes 2 instructions :
Range("A" & i - 1) = L2 et plus bas : Range("A" & i) = L2
ce que j'ai fait est juste une petite optimisation, sans plus.
Nos post se sont croisés....
J'avais édité mon post #6 avec mon ancien fichier (avec un tour de trop) et mon nouveau fichier
C'est pour la simplification que j'ai du mal....
De plus, je maitrise pas bien du tout les "cells (1 , 1)" et je préfère les range("a1") ou [A1]
Je sais c'est facile mais ça rentre pas trop....
oh, c'est juste que Range("E3") = 8 est équivalent à Cells(3, 5) = 8 car pour Cells() c'est la ligne en premier paramètre, puis la colonne en second paramètre ; tu peux aussi écrire Cells(3, "E") = 8 ; mais quand la ligne et la colonne sont connus, c'est plus simple d'écrire : [E3] = 8
si t'avais fait du Turbo Pascal, t'aurais bien aimé : pour le positionnement du curseur sur l'écran c'est avec gotoXY(colonne, ligne); alors qu'en BASICA ou GWBASIC, c'est Locate(ligne, colonne)(comme quoi c'est juste des conventions, qui ont été choisies par ceux qui ont implémenté le langage de programmation)