Mettres des espace entre les caracteres
Bonjour, je suis nouveau sur le site. En effet, je dois écrire un programme qui crée un fichier ou il y'a du texte et des réels qui sont séparés par des espaces qui varient (comme dans le 1ier fichier joint> Ce que je dois avoir).
Mon probleme, comme vous le voyer dans la 2ieme capture (ce que mon programme donne > ce que j'ai) est que les champs sont décallés quand les caractères passent de 1 chiffres a un nombre a deux chiffres. Cela est embêtant pare ce que dans le programme, y'a des nombres a 6 chiffres.
Est ce que c'est peut être possible de faire une fonction qui calcule le nombre d'espace a mettre quand c'est un nombre a 3,4 ou § chiffres?
dans ce cas je ne saurais pas le faire
Merci de bien vouloir répondre si quelqu'un peut m'aider
Voici la partie du code qui a print la capture 2
Le FR est une fonction
For k = 1 To Sheets("Feuil1").Cells(5, 22).Value
Print #1, "CROD " & Fr(ad + k) & " " & Fr(Sheets("Feuil1").Cells(4, 1)) & " " & k & " " & Fr(k + 1)
Next k
af = ad + k - 1
For i = 1 To Sheets("Feuil1").Cells(5, 22).Value
Print #1, "CROD " & Fr(af + i) & " " & Fr(Sheets("Feuil1").Cells(4, 1)) & " " & Fr(ae + i) & " " & Fr((ae + (i + 1)))
Next
ag = af + i - 1
Print #1, "$ Elements and Element Properties for region : P2"
Print #1, "PROD," & Fr(Sheets("Feuil1").Cells(5, 1)) & "," & Fr(Sheets("Feuil1").Cells(5, 2)) & "," & Fr(Sheets("Feuil1").Cells(5, 3))
Print #1, "$ Pset: P2 will be imported as: prod.2"
For l = 1 To Sheets("Feuil1").Cells(5, 22).Value
Print #1, "CROD " & Fr((ag + l)) & " " & Fr(Sheets("Feuil1").Cells(5, 1)) & " " & Fr((ae + l - 1)) & " " & Fr(ae - l)
Next l
ah = ag + l - 1
For j = 1 To Sheets("Feuil1").Cells(5, 22).Value
Print #1, "CROD " & Fr(ah + j) & " " & Fr(Sheets("Feuil1").Cells(5, 1)) & " " & Fr(aj + j - 1) & " " & Fr(aj + j)
Next j
ai = ah + j - 1
bonjour,
une solution avec une fonction de formatage.
x=formatfixe(1,6) -> x contiendra "1bbbbb"
x=formafixe(10,6)-> x contiendra "10bbbb" ou b est un espace
Function formatfixe(n, l, Optional car = " ")
formatfixe = n & String(l - Len(n), car)
End Function
exemple d'appel de la fonction dans ton code
Print #1, "CROD " & formatfixe(Fr(af + i),6) & " " & formatfixe(Fr(Sheets("Feuil1").Cells(4, 1)),6) & " " & formatfixe(Fr(ae + i),6) & " " & formatfixe(Fr((ae + (i + 1))),6)
ah c'est parfait, ca marche exactement comme tu l'a dis @h2so4 . Merci de l'attention portée
J'aurais une autre question qui ne concerne pas les espaces, mais que c'est différent du titre, je vais lancer un autre sujet
Encore Merci