VBA Excel - pb de boucle
Calvin
-
Calvin -
Calvin -
Bonjour,
Voilà, c'est sans doute relativement simple mais je débute et je ne m'en sors pas.
A partir du code suivant, les valeurs présentes dans ma colonne E doivent commencer par "0" si elles sont inférieures à 10. Les autres restent sur 2 chiffres. Dès que la cellule est vide, fin de la boucle....J'introduis donc une boucle mais cela ne fonctionne pas.
Ainsi 2 doit devenir 02, etc... Je ne passe pas par un format de cellule personnalisé car je dois récupérer les valeurs sur 2 chiffres. Ce n'est donc pas qu'un affichage apparent..
Voici la partie de code en question :
ligne = 1
finboucle = 0
Columns("E:E").Select
Selection.NumberFormat = "@"
While finboucle <> 1
ligne = ligne + 1
If (Cells(ligne, 5).Value < 10) Then
Cells(ligne, 5).Value = "0" + Cells(ligne, 5).Value
End If
If Cells(ligne, 5).Value = "" Then
finboucle = 1
End If
Wend
Et bien cela me renvoie :
"Erreur d'application 1004
Erreur définie par l'application ou par l'objet"
La ligne surbrillée étant : If (Cells(ligne, 5).Value < 10) Then
Un grand merci par avance pour votre aide précieuse.,
Voilà, c'est sans doute relativement simple mais je débute et je ne m'en sors pas.
A partir du code suivant, les valeurs présentes dans ma colonne E doivent commencer par "0" si elles sont inférieures à 10. Les autres restent sur 2 chiffres. Dès que la cellule est vide, fin de la boucle....J'introduis donc une boucle mais cela ne fonctionne pas.
Ainsi 2 doit devenir 02, etc... Je ne passe pas par un format de cellule personnalisé car je dois récupérer les valeurs sur 2 chiffres. Ce n'est donc pas qu'un affichage apparent..
Voici la partie de code en question :
ligne = 1
finboucle = 0
Columns("E:E").Select
Selection.NumberFormat = "@"
While finboucle <> 1
ligne = ligne + 1
If (Cells(ligne, 5).Value < 10) Then
Cells(ligne, 5).Value = "0" + Cells(ligne, 5).Value
End If
If Cells(ligne, 5).Value = "" Then
finboucle = 1
End If
Wend
Et bien cela me renvoie :
"Erreur d'application 1004
Erreur définie par l'application ou par l'objet"
La ligne surbrillée étant : If (Cells(ligne, 5).Value < 10) Then
Un grand merci par avance pour votre aide précieuse.,
A voir également:
- VBA Excel - pb de boucle
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Déplacer colonne excel - Guide
3 réponses
Je me demande (je ne suis absolument pas sûr, mais .... j'ai déjà eu des prob dans ce genre) si tu ne mélanges pas du format texte avec du numérique . Si j'ai bien compris ce que tu veux faire .... Les "leading zeroes" sont difficiles à gérer en XL . Soit tu mets les cellules en format texte et les formules ne se calculent plus (même les formules de texte), soit tu mets du numérique et on n'a pas ces zéros en tête de nombre !
Bon je sais tu n'es pas avancé avec ça mais au moins tu n'es pas seul ! ;-))
Bon je sais tu n'es pas avancé avec ça mais au moins tu n'es pas seul ! ;-))
Bonjour,
Procéder comme suit :
Lupin
Procéder comme suit :
Option Explicit
Sub Test()
Dim ligne As Long, finboucle As Long
ligne = 1
finboucle = 0
Columns("E:E").Select
Selection.NumberFormat = "@"
While finboucle <> 1
If (Cells(ligne, 5).Value < 10) Then
Cells(ligne, 5).Value = "0" & Cells(ligne, 5).Value
End If
If Cells(ligne + 1, 5).Value = "" Then
finboucle = 1
End If
ligne = ligne + 1
Wend
End Sub
'
Lupin
bonjour
Si tu remplaces le + qui concerne le numérique par & qui concerne le texte cela devrait fonctionner :
Cependant tu n'as pas besoin de cette modification pour récupérer la valeur sur 2 caractères.
Avec ce code ta variable deux sera en texte sur 2 caractères avec le zéro initial si nécessaire.
edit :
Bonjour Lupin.A : tu as été plus rapide que moi !
avec un petit coucou amical à la froidure qui est aussi présente ici en France.
Si tu remplaces le + qui concerne le numérique par & qui concerne le texte cela devrait fonctionner :
Cells(ligne, 5).Value = "0" & Cells(ligne, 5).Value
Cependant tu n'as pas besoin de cette modification pour récupérer la valeur sur 2 caractères.
deux = Format(cellule, "00")
Avec ce code ta variable deux sera en texte sur 2 caractères avec le zéro initial si nécessaire.
edit :
Bonjour Lupin.A : tu as été plus rapide que moi !
avec un petit coucou amical à la froidure qui est aussi présente ici en France.
lol..c'est vrai mais je crois avoir maintenant la solution à mon énigme (c'était pas la quadrature du cercle mais pour moi et à mon niveau un peu...).
En tout cas , c'est chouette de m'aider.
Bonne soirée