Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 02/07/2009, 22h48   #1
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2006
Messages : 37
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 14
Points : 14
Par défaut Conserver le format d'une chaîne de caractères

Bonsoir,

Je fais une macro excel qui va chercher des données dans un tableau puis créée un fichier html/css pour les mettre en forme.
Le programme va chercher les données par une boucle. Les coordonnées sont déterminées par les variables borneinf et nummission.
Code :
1
2
3
4
5
6
7
8
9
 
'collecte des données
Numbateau = Cells(borneinf + nummission, 2)
Origine = Cells(borneinf + nummission, 3)
Destination = Cells(borneinf + nummission, 5)
'formatage
Format(Numbateau, "@")
Format(Origine, "@")
Format(Destination, "@")
Comme les données apparaissaient sous forme de nombre décimal avec un nombre de chiffres improbable, j'ai essayé de rajouter le formatage ci-dessus.
Ce qui est surprenant, c'est que pour la variable origine, ça marche. pour les autres, j'obtiens "faux" ou "false" en lieu et place de la variable.

J'ai essayé de modifier le format des cellules, mais rien n'y fait. Il me semble aussi que j'avais essayé de rajouter une apostrophe devant la chaîne et que ça n'avait pas marcher, mais je pourrai réessayer.

Quelqu'un aurait-il la solution ?

Bonne soirée

Dernière modification par Domi2 ; 04/07/2009 à 07h10. Motif: indication de la version : liste déroulante "Préfixe" devant la zone de rédaction du titre
Z20500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2009, 23h12   #2
Inactif
 
Inscription : juillet 2007
Messages : 4 555
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4 555
Points : 5 005
Points : 5 005
Bonjour,

et tu as bien sûr pensé à contrôler le contenu de numbateau (par exemple), lorsque False est retourné ?

Si non : fais-le donc ...

Car (par exemple) :

Code :
MsgBox Format(False, "@")
retourne "False" ...
ucfoutu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 07h47   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 469
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 469
Points : 11 906
Points : 11 906
Citation:
Envoyé par Z20500
Ce qui est surprenant, c'est que pour la variable origine, ça marche.
Je ne sais pas dans quelle version tu es mais pour celles que je connais, elles ne connaissent pas Format(Variable, "@")
Alors, qu'entends-tu par là ?

S'il s'agit de formater les données placées dans une cellule, teste ça
Code :
1
2
3
4
5
6
Sub test()
Dim Variable As Double
    Variable = 0.45681325678
    Range("B1") = Variable
    Range("B1").NumberFormat = "@"
End Sub
Tu peux aussi formater toute la colonne
Code :
Columns("B").NumberFormat = "@"
Bonne journée
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 07h47   #4
Membre du Club
 
Inscription : juin 2009
Messages : 48
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 48
Points : 53
Points : 53
Salut,

Code :
1
2
3
4
5
'collecte des données
Numbateau = Cells(borneinf + nummission, 2)
Origine = Cells(borneinf + nummission, 3)
Destination = Cells(borneinf + nummission, 5)
'formatage
Si tu veux conserver le nombre entier, ex :
Code :
FormatNumbateau=CSTR(Numbateau) & "@")
Si tu veux conserver la partie entière, ex :
Code :
FormatNumbateau=CSTR(INT(Numbateau)) & "@")

Dernière modification par Domi2 ; 04/07/2009 à 07h09. Motif: ajout des balises de code (sélection du code + # au dessus de la fenêtre de rédaction du message)
CRACOS38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2009, 00h30   #5
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2006
Messages : 37
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 14
Points : 14
Bonsoir,

Merci pour vos réponses. Je vais essayer ce que vous proposez.

Les variables qui me posent problème sont déclarées en tant que string. J'avais essayé de les déclarer comme variant mais cela n'avait rien changé.

Bonne nuit
Z20500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2009, 07h32   #6
Membre du Club
 
Inscription : juin 2009
Messages : 48
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 48
Points : 53
Points : 53
Coucou,
Precision : parenthese fin de ligne à virer.
CRACOS38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2009, 09h42   #7
Candidat au titre de Membre du Club
 
Étudiant
Inscription : avril 2006
Messages : 37
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 14
Points : 14
Bonjour,

merci à tous pour vos réponses. Finalement, le problème semble avoir été résolu en rajoutant .Value à la fin de chaque référence
Code :
Destination = Cells(borneinf + nummission, 5).Value
au lieu de
Code :
1
2
 
Destination = Cells(borneinf + nummission, 5)
Z20500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 14h26.


 
 
 
 
Partenaires

Hébergement Web