Macro visual Basic sur excel

Fermé
didwin Messages postés 56 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 septembre 2015 - 21 déc. 2009 à 09:43
 didwin - 11 janv. 2010 à 11:21
Bonjour,


Je voudrais faire un échéancier sur excel cu que c est un tableur cela devrait être simple. Je voudrais un style zonelist ou tu indique le montant que tu régles et le systéme doit être capable de ranger cette information en D2 + la date de réglement mais si D2 est déja pris il doit alors la mettre en d3 etc

Merci par avance de votre aide

Didwin
A voir également:

6 réponses

ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
22 déc. 2009 à 16:34
Bonjour à toi,

Je ne comprends pas très bien ton problème, peux-tu donner un exemple?
0
Salut,

Alors je vais essayer d'être clair dans mon exemple : voila j ai un prêt de 4500 euros . Ce mois, je veux enregistrer un paiement de 150 euros donc cette somme dois s incrire (exemple en b5) Dans la colonne B vont figurer tous mes remboursements. Donc le premier va aller dans b5 alors je voudrais une petite macro qui indique que si B5 est déja pris qu il mette l'information en B6 et ainsi de suite.
J espère que tu arrives a voir ce que je veux dire sinon recontacte moi.
Bonnes fetes de fin d années

Didwin
0
jejelefou Messages postés 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
28 déc. 2009 à 17:01
Bonjour,

ça ne serait pas plus simple que tu regardes la 1ere case de vide de la colonne B et avec ta souris cliquer dessus?
Parce du code pour voir si une case est vide, c'est riche.

Sinon j'ai tres mal compris ta requette. Dans ce dernier cas Pourrais tu nous eclaircir un peut mieux.

cordialement
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
28 déc. 2009 à 17:10
re

quelque chose com ca serais le plus simple

i=1
miseajour = false
do until i = 1 or miseajour = false
if cells(i,4).value <>"" then
...
...
...
miseajour = true
else
i = i+1
end if
loop
0
alors d accord pours tes infos mais que dois faire ? est ce que je créé une macro ? je te préviens je suis novice mais merci d avance pour ton aide

Didwin
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 déc. 2009 à 17:37
Bonjour

essaies cette macro qui te demande le montant puis la date de prise en compte
le montant s'écrit dans la colonne D et la date dans la colonne E à la 1° ligne vide

Sub rembourser()
Dim montant, jour, ligvide As Integer

montant = InputBox("montant à inscrire")
If montant = "" Or Not IsNumeric(montant) Then Exit Sub

jour = InputBox("date de prise en compte sous la forme jj/mm/aa")
If Not jour Like "##/##/##" Then Exit Sub

ligvide = Range("D1000").End(xlUp).Row + 1
Cells(ligvide, 4) = montant
Cells(ligvide, 5) = Format(jour, "dd/mm/yy")
End Sub


Pour installer (XL<2007)
fais un "copier" de cette macro
va dans VBE avec Alt+F11
insertion-module
coller
retourne sur ta feuille
dans barre d'outils formulaire sélectionne le bouton et dessine le sur la feuille
et affecte le à la macro
0
merci de ton aide vraiment génial

mais dis moi, si je veux mettre mon échéancier sur la feuill2 ce dois je changer dans ma formule.

merci et bonne fête

Didwin
0
Bonjour Michel,

Merci pour l info cela marche c est super. Maintenant je voudrais faire un 2ème bouton qui devrait me permettre de modifier une échéance ( ex : erreur sur le montant) . Peux tu encore m'aider.

merci par avance

Didwin
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > didwin
8 janv. 2010 à 11:03
bonjour,

je regarde ca cet aprèm: un peu de patience... merci ;-)
0
didwin > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
8 janv. 2010 à 13:50
Michel,

Juste une petite question, sur ton premier programme cela fonctionne bien mais si je voulais que la date et la somme soient incrite sur ma feuil2 (appelé échéancier) que dois-je changer.

Merci par avance

Didwin
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435 > didwin
8 janv. 2010 à 15:04
Bonjour,

les plus simple serait d'executer le code en étant déjà sur la feuille voulue (ce code fonctionne sur la feuille active)
Sinon, modifier comme ceci :
Sub rembourser()
Dim montant, jour, ligvide As Integer

montant = InputBox("montant à inscrire")
If montant = "" Or Not IsNumeric(montant) Then Exit Sub

jour = InputBox("date de prise en compte sous la forme jj/mm/aa")
If Not jour Like "##/##/##" Then Exit Sub

Sheets("échéancier").Activate

ligvide = Range("D1000").End(xlUp).Row + 1
Cells(ligvide, 4) = montant
Cells(ligvide, 5) = Format(jour, "dd/mm/yy")
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
28 déc. 2009 à 17:42
et bien sur mise a jour du champ ou tu rentre t info tu met le code suivant:

i=1
miseajour = false
do until i = 1 or miseajour = false
if worsheets"nom de ta feuille".cells(i,4).value ="" then
worsheets"nom de ta feuille".cells(i,4).value = montant tapé je ne c pas ou
miseajour = true
else
i = i+1
end if
loop
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
28 déc. 2009 à 18:18
i=1
miseajour = false
do until i = 1 or miseajour = false
if worsheets"feuil2".cells(i,4).value ="" then
worsheets"feuil2".cells(i,4).value = montant tapé je ne c pas ou
miseajour = true
else
i = i+1
end if
loop
0