Codes VBA - Problèmes de % et d'adresse

Bonjour,

J’ai deux problèmes avec mon fichier ci-joint :

1) Comme je ne sais pas où sera enregistré ce fichier par différents utilisateurs, j’imaginais qu’un code VBA pourrait aller lire son adresse afin de pouvoir enregistrer une copie juste à coté.

Je m’explique : si mon fichier de base est enregistré sous G:\Jean\Fichier_de_base_Youille, le code enregistrerait l’adresse G:\Jean\ de manière à pouvoir enregistrer plus loin une copie sous le nom G:\Jean\Copie_du_fichier_de_base_pour_l_année_xxxx.

J’ai placé quelques informations complémentaires directement dans le code en place.

Edit : PROBLEME 2 RESOLU SELON NOUVEAU FICHIER JOINT

2) Dans ma deuxième InputBox, il faudrait pouvoir enregistrer un taux d’intérêt, avec éventuellement des décimales séparées par des points et/ou le signe %. S’il faut restreindre les possibilités d’inscription ici, on pourrait l’indiquer dans le message affiché (par exemple : « Inscrire le taux sans le signe % »).

L’essentiel étant que la cellule C20, qui est complétée par la valeur inscrite dans cette InputBox, le soit avec la bonne valeur.

Pour l’instant ma InputBox n’accepte pas que j’indique le signe % (autrement ça bloque), si j’indique 3, ça inscrit 300 % en C20 (je pourrais diviser ce chiffre par 100, mais je ne trouve pas ça heureux) et si j’indique 4.5, seul le chiffre 4 est pris en compte (Résultat actuel en C20 = 400 %).

Pouvez-vous m'aider ?

Au plaisir de vous relire

Bonjour,

Problème des pourcents, remplace cette ligne :

Range("C20") = j

Par

Range("C20") = j / 100
Range("C20").NumberFormat = "0.00%"

Déclare J as single au lieu de String

Amicalement

Salut Dan,

Merci pour ta réponse. Ca m'a permis de résoudre quelques uns de mes problèmes.

J'espère encore recevoir de l'aide pour mon autre question.

Bonnes salutations.

Re,

Pour sauver ton fichier tu peux essayer ceci :

ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & "fichier_de_base_Yvouille" & "_i" & ".xls"

Place cette ligne dans ton code après avoir défini la variable i. Donc à la fin de tamacro par exemple.

Amicalement

Re-salut,

Merci pour ta nouvelle réponse. J'ai juste corrigé SaveCopyAs en SaveAs, puisque c'est bien ce nouveau fichier qui doit être encore traité (alors que le fichier de base doit être refermé sans modification) et j'ai modifié & "_i" en & i afin que le chiffre de l'année soit bien inscrit à la place de la lettre i. Autrement ça fonctionne à merveille.

Peux-tu encore m'aider sur deux points ?

- Le taux d'intérêt inscrit en C20 - bien qu'il apparaisse correctement à l'écran - est bizarement "dévoloppé" en arrière plan. Par exemple 3.00% est en réalité 2.999999999347%. Y a-t-il un moyen simple de remédier à ce problème ?

- Si, malgré l'information inscrite dans la InputBox, l'utilisateur inscrit le signe % lors de la saisie, le code bloque. Serait-il possible qu'une MsgBox s'ouvre alors afin d'informer l'utilisateur de modifier son inscription ?

Mon travail en l'état :

re,

Serait-il possible qu'une MsgBox s'ouvre alors afin d'informer l'utilisateur de modifier son inscription ?

Modifie le code comme suit :

Sub Nouvelle_annee()
Dim i As Integer
Dim j
ActiveSheet.Unprotect ("")
Range("C8:C14").ClearContents
i = InputBox("Calcul de l'intérêt. Montant reçu en (année) ?")
Range("A1") = "Calcul de l'intérêt. Montant reçu en " & i
Do
j = InputBox("Intérêt de l'année " & i & " (SANS LE SIGNE %)")
If Not IsNumeric(j) Then MsgBox "votre saisie doit uniquement contenir des chiffres !"
Loop Until IsNumeric(j)
Range("C20") = j / 100
Range("C20").NumberFormat = "0.00%"
Range("C8").Select

ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Calcul d'intérêt pour l'année " & i & ".xls"
With ActiveSheet
    .DrawingObjects.Delete
    .Protect ("")
End With
ActiveWorkbook.Save
End Sub

Le taux d'intérêt inscrit en C20.....

Bizarre mais peut être essaie en changeant l'instruction Numberformat ---> Range("C20").NumberFormatlocal = "0.00%"

Amicalement

Salut Dan,

Tu as fait d'une pierre deux coups !! Et ainsi résolu mes deux derniers problèmes.

La modification du code que tu proposes empêche effectivement qu'on saississe un format de nombre erroné et le problème de l'arrondi de la cellule C20 n'existe plus. Est-ce parce que la variable j a été définie différemment ? Je présume que ça doit être ça.

Mon travail ainsi achevé :

Merci beaucoup pour ton aide et bonnes salutations.

Rechercher des sujets similaires à "codes vba problemes adresse"