VAB

Résolu/Fermé
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 - 23 déc. 2011 à 18:50
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 - 24 déc. 2011 à 12:54
Bonjour,

Voici le code :

_________________________
Dim Salaire As Integer
Dim Proprio As Byte
Dim Financement As String
Dim Charge As String
Dim Charge2 As String
Dim Loyer As Integer
Dim A As String



Range("B2").Select

Salaire = InputBox("Entrez votre salaire mensuel (en €):")
ActiveCell.Offset(0, 0).Value = Salaire
'--------------------------------------------------------------------------------------------

Do
Proprio = InputBox("Entrez :" & vbCrLf & "1 si vous êtes Propriétaire" & vbCrLf & "2 si vous êtes Locataire")
If Not (Proprio = 1 Or Proprio = 2) Then MsgBox "Erreur de saisie. Recommencez"
Loop Until Proprio = 1 Or Proprio = 2



If Proprio = 1 Then
Financement = MsgBox("Avez-vous un financement?", vbYesNo, "")
End If


If Proprio = 2 Then
Charge = MsgBox("Les charges sont comprise dans le loyer?", vbYesNo, "")
End If

If Charge = vbNo Then
Charge2 = InputBox("Quel est le montant des charges (en €)?")
ActiveCell.Offset(3, 0).Value = Charge2
End If


If Proprio = 1 Or 2 Then
A = Proprio
End If

If Proprio = A And Financement = vbYes Then
Loyer = InputBox("Indiquez votre loyer mensuel (en €)")
ActiveCell.Offset(2, 0).Value = Loyer
Else
ActiveCell.Offset(2, 0).Value = "0"
End If


__________________________

Il y a un truc qui ne fonctionne pas:

a la fin: Je voudrais demander le Loyer:
_Au propriétaire en finanacement
_PAS Au propriétaire sans financement
_Au Locaraire avec ou sans charge
(Docn tout le monde sauf les proprio sans financement)


Le but est de connaitre le salaire, leur loyer (pas de loyer pour les Propio sans financement)... (et de savoir si Locataire compte les charges dans leur loyer ou pas)

.... Aidez moi ...plz

3 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 déc. 2011 à 22:00
Bonjour,
1°) ActiveCell.Offset(0, 0).Value = Salaire ?
ActiveCell.Value = Salaire -> Suffit
2°) il faux mettre la variable à chaque fois.
If Proprio = 1 Or Proprio = 2 Then
3°) Pourquoi faire un test qui ne sert à rien puisque Proprio sera toujours soit à 1 soit à 2
4°) Tu essaye d'entrer une variable Byte dans une variable string.
Donc, oublie le test de Proprio et écrire.
A = Cstr(Proprio)
Mais tout ça n'est pas nécessaire.
Tu supprime tes lignes en gras et remplace par...
    If Financement = vbYes Then
        Loyer = InputBox("Indiquez votre loyer mensuel (en €)")
    Else
        Loyer = 0
    End If
    ActiveCell.Offset(2, 0).Value = Loyer

A+
1
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
23 déc. 2011 à 22:21
Merci lermite222, j'essaye ca je te tiens au courant :)
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 11:47
Bonjour,

Cela ne fonctionne pas car , il ne demande pas le Loyer:

________________________

Sub Depense()


Dim Salaire As Integer
Dim Proprio As Byte
Dim Financement As String
Dim Charge As String
Dim Charge2 As String
Dim Loyer As Integer
Dim A As String

Range("B2").Select

Salaire = InputBox("Entrez votre salaire mensuel (en €):")
ActiveCell.Value = Salaire

Do
Proprio = InputBox("Entrez :" & vbCrLf & "1 si vous êtes Propriétaire" & vbCrLf & "2 si vous êtes Locataire")
If Not (Proprio = 1 Or Proprio = 2) Then MsgBox "Erreur de saisie. Recommencez"
Loop Until Proprio = 1 Or Proprio = 2

If Proprio = 1 Then
Financement = MsgBox("Avez-vous un financement?", vbYesNo, "")
End If


If Proprio = 2 Then
Charge = MsgBox("Les charges sont comprise dans le loyer?", vbYesNo, "")
End If

If Charge = vbNo Then
Charge2 = InputBox("Quel est le montant des charges (en €)?")
End If
ActiveCell.Offset(3, 0).Value = Charge2


If Financement = vbYes Then
Loyer = InputBox("Indiquez votre loyer mensuel (en €)")
Else
Loyer = 0
End If
ActiveCell.Offset(2, 0).Value = Loyer




End Sub

____________________________________

Et je pense que ca demanderais qu'au proprio avec financement pas comme je voudrais:
_Au propriétaire en finanacement
_PAS Au propriétaire sans financement
_Au Locaraire avec ou sans charge

Je voyais un truc du grene: Si propriétaire avec financement OU locataire alors demandé le loyer sinon rien.
(Docn tout le monde sauf les proprio sans financement)

A part le loyer, tout marche
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 11:50
Même quand je fait un :
If Financement = vbYes Or Proprio = 2 Then ...

Il me revois une Erreur d'exécution 13, incompatibilité de type
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 24/12/2011 à 12:06
Déclare Financement en integer ou Byte et la condition fonctionnera.
ou bien tu met..
If Financement = "6" Or Proprio = 2 Then
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
1
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:11
Bonjour,

Merci pour ta réponse plus que rapide :)

Cela fonctionne pour les Locataire (proprio = 2) mais pas pour les Proprio avec financement (Financement = vbYes) ...
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:13
"Incompatibilité de type"
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:23
If Financement = "6" , c'est bizarre :p mais ca ne fonctionne pas Maitre lermite :s
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
24 déc. 2011 à 12:24
Mais ça ne saurait pas fonctionner, tu a encore une erreur sur Charge ?
Tu met tes variable en String ? si tu à des calcul à faire avec des formules dans le tableur ça ne va pas fonctionner.
Je regarde pour arranger ça.
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:29
Charge fonctionne, plus de string
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 24/12/2011 à 12:31
Essaye avec..
Dim Proprio As Byte 
Dim Financement As Integer 
Dim Charge As Single 
Dim Charge2 As Single 
Dim Loyer As Single 

    Do 
        Proprio = InputBox("Entrez :" & vbCrLf & "1 si vous êtes Propriétaire" & vbCrLf & "2 si vous êtes Locataire") 
        If Not (Proprio = 1 Or Proprio = 2) Then MsgBox "Erreur de saisie. Recommencez" 
    Loop Until Proprio = 1 Or Proprio = 2 

    If Proprio = 1 Then 
        Financement = MsgBox("Avez-vous un financement?", vbYesNo, "") 
    Else 
        Charge = MsgBox("Les charges sont comprise dans le loyer?", vbYesNo, "") 
    End If 
    If Charge = vbNo Then 
        Charge2 = InputBox("Quel est le montant des charges (en €)?") 
    End If 
    ActiveCell.Offset(3, 0).Value = Charge2 
    If Financement = vbYes Or Proprio = 2 Then 
        Loyer = InputBox("Indiquez votre loyer mensuel (en €)") 
    Else 
        Loyer = 0 
    End If 
    ActiveCell.Offset(2, 0).Value = Loyer

Les variables "Single" permettent les décimales comme par exemple 202.45 euros
A+
Edit :
Mais ça ne serait pas plus "Pro" avec un userForm ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
1
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:35
Merci bcp Lermite, ca fonctionne très bien.
Vraiment
Bonne journée :)
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:38
Je ne maîtrise pas les userForm :p
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
24 déc. 2011 à 12:45
Il n'est jamais trop tard pour apprendre :D
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 12:54
En effet :)
https://silkyroad.developpez.com/VBA/UserForm/

Ca va m'aider, encore merci
0