i = 1
while not ActiveCells.Offset(Cellule.Row, i+1).value=""
while not ActiveCells.Offset(Cellule.Row, i+1).value="" and not ActiveCells.Offset(Cellule.Row, i).value=""
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Function Lissage(col As integer) ' Déclaration des variables ' cells (ligne,colonne) Dim i As Double, j As Double, rt, nRow As Double On Error GoTo errFound 'si comme tu dis tu as du texte au début des colonnes, deux possibilité : soit tu peux 'toujours dire le nombre de lignes inutiles avant les données (mieux c'est toujours la 'même) dans ce cas tu modifies la valeur d'init de i, et sinon tu codes une deuxième 'boucle pour te positionner sur la première valeur i = 1 'il suffit d'indiquer le numéro de colonne plutot que 1 pour le 2e paramètre While Cells(i, col) <> "" i = i + 1 Wend 'le reste est bon, j'ai juste enlevé des param pour la manipulation de rt (pour plus de 'simplicité) nRow = i - 1 ReDim rt(1 To nRow) For i = 1 To nRow - 1 rt(i) = (cells(i, col) + cells(i + 1, col)) / 2 Next rt(nRow) = cells(nRow, col) Lissage = rt Exit Function errFound: Lissage = Err.Description End Function