Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

willnet

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

Bonjour Banzai,

Merci pour la réponse et le code.

J'ai cependant toujours une erreur "End Sub attendu". Je ne la comprend pas vraiment puisque le End Sub figure dans le code...
 

Banzai64

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

Bonjour

Le code que je t'ai proposé fonctionne

Sans connaitre ton code il ne va pas être facile de répondre

Fournis le code complet de ta macro pour voir où cela coince

Bonne journée
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…