VBA excel - Problème
Résolu/Fermé
Calvin
-
11 févr. 2009 à 21:06
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 17 févr. 2009 à 12:09
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 17 févr. 2009 à 12:09
A voir également:
- VBA excel - Problème
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
3 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
11 févr. 2009 à 22:30
11 févr. 2009 à 22:30
Bonsoir,
Voilà un code qui devrait fonctionner :
A+
Voilà un code qui devrait fonctionner :
Sub cmdvalider_Click() If boitannee = "" Then MsgBox "Vous devez entrer une année." boitannee.SetFocus Exit Sub End If If boitmois = "" Then MsgBox "Vous devez entrer un mois." boitmois.SetFocus Exit Sub End If If boitcode = "" Then MsgBox "Vous devez entrer un code." boitcode.SetFocus Exit Sub End If ligne = 1 finboucle=0 While finboucle <> 1 If (Cells(ligne, 4).Value <> "") Then ligne = ligne + 1 Else Cells(ligne, 1).Value = boitannee Cells(ligne, 2).Value = boitmois Cells(ligne, 3).Value = boitcode finboucle = 1 End If Wend End Sub
A+
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
17 févr. 2009 à 10:34
17 févr. 2009 à 10:34
Bonjour,
Je n'ai pas bien compris pourquoi tu ne veux pas utiliser le format personnalisé car en utilisant le format "00" même en VBA grâce à l'instruction :
Tu obtiens bien ce que tu souhaites et tu peux même faire des calculs qui continuent à fonctionner correctement.
Peux tu me préciser ce point.
A+
Je n'ai pas bien compris pourquoi tu ne veux pas utiliser le format personnalisé car en utilisant le format "00" même en VBA grâce à l'instruction :
Columns("E:E").Select Selection.NumberFormat = "00"
Tu obtiens bien ce que tu souhaites et tu peux même faire des calculs qui continuent à fonctionner correctement.
Peux tu me préciser ce point.
A+
Bonjour Pilas,
Et bien en fait il se trouve une application qui en aval de mon fichier récupère les données, et je ne sais pour quelle raison, si je mets au format personnalisé "00" elle ne reconnaît pas le "0" supplémentaire. Il ne semble s'agir que d'un affichage. J'ai plus besoin en fait d'une concaténation.
Bonne journée et @ +
Et bien en fait il se trouve une application qui en aval de mon fichier récupère les données, et je ne sais pour quelle raison, si je mets au format personnalisé "00" elle ne reconnaît pas le "0" supplémentaire. Il ne semble s'agir que d'un affichage. J'ai plus besoin en fait d'une concaténation.
Bonne journée et @ +
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
17 févr. 2009 à 12:09
17 févr. 2009 à 12:09
Re
Ok, je comprends mieux. Dans ce cas, je te propose de modifier légérement ton code initial en utilisant la concaténation, voilà le code modifié :
Dis moi si cela te convient
A+
Ok, je comprends mieux. Dans ce cas, je te propose de modifier légérement ton code initial en utilisant la concaténation, voilà le code modifié :
Columns("E:E").Select Selection.NumberFormat = "@" Selection.HorizontalAlignment = xlRight 'justification à droite du texte ligne = 2 While Cells(ligne, 5) <> 0 If Cells(ligne, 5).Value < 10 And Mid(Cells(ligne, 5), 1, 1) <> "0" Then Cells(ligne, 5).Value = "0" & Cells(ligne, 5).Value End If ligne = ligne + 1 Wend
Dis moi si cela te convient
A+
11 févr. 2009 à 22:47
Merci beaucoup pour le code. En bidouillant un tout petit peu c'est tout à fait ça. Encore merci pour ta précieuse aide.
Voici le code à présent :
Sub cmdvalider_Click()
If boitannee = "" Then
MsgBox "Vous devez entrer une année."
boitannee.SetFocus
Exit Sub
End If
If boitmois = "" Then
MsgBox "Vous devez entrer un mois."
boitmois.SetFocus
Exit Sub
End If
If boitcode = "" Then
MsgBox "Vous devez entrer un code."
boitcode.SetFocus
Exit Sub
End If
ligne = 1
finboucle = 0
While finboucle <> 1
ligne = ligne + 1
If (Cells(ligne, 4).Value <> "") Then
Cells(ligne, 1).Value = boitannee
Cells(ligne, 2).Value = boitmois
Cells(ligne, 3).Value = boitcode
Else
finboucle = 1
End If
Wend
End Sub
12 févr. 2009 à 00:10
J'avais mal compris la condition sur la colonne D. Donc tu as bien rectifié.
Heureux d'avoir pu t'aider.
Bonne continuation...
16 févr. 2009 à 19:06
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
Un grand merci par avance pour votre aide précieuse.