Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Problème de boucle en vba


rimbaut

Messages recommandés

Bonsoir à tous,

Je rencontre un probléme avec la boucle While dans une application excel. En effet, je voudrais parcourir une liste de compte se trouvant dans la colonne A de la feuille "Balance" de façon à rechercher les comptes qui commencent par 63 et les copier sur une autre feuille "My B400".

Il faut savoir que je ne connais pas au départ le nombre de compte que peut contenir cette colonne. Aussi j'ai opté pour la boucle while wend pour solutionner mon problème.

 

J'ai reproduit ci après un extrait de mon code et la boucle while achoppe. Quelqu'un peut il venir à mon aide car je bataille depuis quelques jours et je ne comprends pas comment placer une condition dans le while. D'ailleurs est ce que l'égalité mentionné dans le code suivant n'est elle pas une condition ?

 

Merci d'avance pour votre aide indispensable

 

Sub test2()

Worksheets("My B400").Activate

Dim x As Integer

Dim y As Integer

Dim y2 As Integer

Dim Compteur As Byte

 

Dim total_annee_1 As Long

Dim total_annee_2 As Long

 

total_annee_1 = 0

total_annee_2 = 0

 

y2 = 12

y = 11

While Left$(Sheets("Balance").Cells(y, 1).Value, 2) = "61"

With Worksheets("My B400")

.Range(y2, 1) = Sheets("balance").Cells(y, 1)

End With

Compteur = Range("a1").Value

 

Wend

 

End Sub

Lien vers le commentaire
Partager sur d’autres sites

hum, comme ca je dirais bien que si la premiere cellule est different de 61 tu ne rentre meme pas dans ta boucle

Tu veux tous les 63 ?

voici un exemple:

Dim Plage   As Range
Dim i	   As Long
Dim Cel	 As Object

Set Plage = Sheets("Balance").Range("A1:A255")

For Each Cel In Plage
If Left(Cel.Value, 2) = "63" Then
	i = i + 1
	Worksheets("My B400").Cells(i, 1).Value = Cel.Value
End If
Next

MsgBox i & " entrée(s) copiée(s)"

 

++

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...