VBA: problème dans une boucle

willnet

XLDnaute Nouveau
Bonjour,

je suis débutant en VBA et bloque sur une boucle, j'ai essayé différentes méthodes mais je ne trouve rien qui m'indique comment faire.

Je souhaite supprimer une ligne et à la suite de ça enlever 1 à toutes les valeurs de la colone A se trouvant sous cette ligne, jusqu'à ce que les lignes soient vides.
Il est important que les lignes vides ne se voient pas attribuer -1 dans la cellule de la colonne A.

Voici mon morceau de code:

X = Sheets("modifier").Range("D4").Value + 2
Sheets("donnees").Range(X & ":" & X).Delete xlUp

Do
Dim i As Integer
For i = X To 247
If Sheets("donnees").Range("A" & i).Value <> "" Then
Sheets("donnees").Range("A" & i).Value = Sheets("donnees").Range("A" & i).Value - 1
Next i
End If

Merci d'avance pour votre aide.

Willnet
 

Banzai64

XLDnaute Accro
Re : VBA: problème dans une boucle

Bonjour

Tu avais un peu de mélange dans ton code
un Next i après un If
Un Do sans Loop

A voir

VB:
Sub test()
Dim I As Integer
Dim X As Byte

  X = Sheets("modifier").Range("D4").Value + 2
  With Sheets("donnees")
    .Rows(X).Delete shift:=xlShiftUp
    For I = X To 247
      If .Range("A" & I).Value <> "" Then
        .Range("A" & I).Value = .Range("A" & I).Value - 1
      End If
    Next I
  End With
End Sub