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
Futur Membre du Club
 
Date d'inscription: avril 2006
Localisation: Yvelines (78)
Messages: 37
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 :
 
'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
Vieux 02/07/2009, 23h12   #2
Inactif(ve)
 
Date d'inscription: juillet 2007
Localisation: au pays de la liberté d'esprit
Messages: 4 569
Par défaut

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
Vieux 03/07/2009, 07h47   #3
Inactif(ve)
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: 45,10 N 5,43 E
Messages: 12 494
Par défaut

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 :
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
Vieux 03/07/2009, 07h47   #4
Membre à l'essai
 
Date d'inscription: juin 2009
Messages: 49
Par défaut

Salut,

Code :
'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
Vieux 04/07/2009, 00h30   #5
Futur Membre du Club
 
Date d'inscription: avril 2006
Localisation: Yvelines (78)
Messages: 37
Par défaut

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
Vieux 04/07/2009, 07h32   #6
Membre à l'essai
 
Date d'inscription: juin 2009
Messages: 49
Par défaut

Coucou,
Precision : parenthese fin de ligne à virer.
CRACOS38 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/07/2009, 09h42   #7
Futur Membre du Club
 
Date d'inscription: avril 2006
Localisation: Yvelines (78)
Messages: 37
Par défaut

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 :
 
Destination = Cells(borneinf + nummission, 5)
Z20500 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 02h06.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.