Deux soucis pour finaliser mon fichier

Bonsoir a tous, forum,

Je souhaiterai svp un petit coup de main pour finaliser mon fichier.

Voir les commentaires directement sur la feuille du fichier ci joint.

Merci a tous pour votre aide, bonne soirée a tous.

Cdlt Ray

15depenses5.xlsm (275.67 Ko)

Bonjour,

Parce que ceci englobe aussi la colonne C !!

'*** Passe en majuscule la première lettre des colonnes B et D
Dim Rg As Range, C As Range
Set Rg = Intersect(Range("B2:D43"), Target)

idem ici

'*** Première lettre en Majuscule Bleu et Gras en colonne (B:D)
Sub Majuscule_Bleu_Gras_Colonne_B_D()

et puis il y a ceci aussi !

If Mid(Cel, i, 1) = "." Then Exit For
Cel = Left(Cel, i - 1) & UCase(Mid(Cel, i, 1)) & Right(Cel, Len(Cel) - i)

Un conseil, je crois que c'est très mal parti ! fais simple ...

Bonjour

Tes deux montants avec décimales sont en texte et non en nombre d'où le problème de format.

Ta logique n'est pas la bonne : met la date sur toutes les lignes et ajoute des lignes à la suite du tableau, pas d'insertion.

Il suffit de trier pour avoir les dates dans l'ordre.

Et il normal qu'un insertion ou suppression perturbe une formule qui se réfère à d'autre ligne.

On peut utiliser une formule DECALER pour éviter cela

Des formules plus adaptées et des mise en forme conditionnelles remplaceraient avantageusement le code VBA ...

Ce type de tableau inspiré du papier n'est pas optimum pour l'exploitation...

Edit : Steelson a été plus rapide mais sur le fond on est en phase...

bonjour à tous

oui, une compta c'est beauuuuuuucoup plus simple !

même si un jour tu fais une compta pro avec ventilations et tout le toutim

une feuille de saisie comme toi

mais il FAUT mettre la date dans chaque ligne ; Excel en a besoin !

ensuite, tu fais les totaux non pas sur cette feuille mais dans un autre onglet avec un TCD

aucune formule, aucun VBA !

le rêve ! merci Excel

note : abandonne les formulaires, ça fait pro, je sais. Mais sache qu'aucun progiciel avec formulaires n'est fait avec Excel !

en gros : tu te crées tes problèmes. Supprime les problèmes à la source pour ne pas avoir à les résoudre. C'est vrai pour toute ta vie et pas que pour Excel

Salut a tous,

Je vous remercie pour vos commentaires toutefois enrichissants pour moi.

Est t'il possible quand même de faire quelques chose histoire de sauver les meubles.

Dites moi comment améliorer si toutefois c'est possible, sinon hé bien tant pis, j'aurai

fait tout ca pour rien dommage.

Mais je comprends bien mais je ne suis pas aussi douer que vous pour construire quelque

chose de potable en VBA.

Merci tout même a vous, je vous souhaite la bonne soirée.

Cdlt Ray

Si en effet tu n'es pas à l'aise, oublie VBA.

D'ailleurs, en ce qui concerne les majuscules, excel reprend de lui-même les majuscules écrites précédemment (même colonne). Il suffit donc de bien écrire la première fois.

Donc la plus grande amélioration, est de se passer de VBA.

re à tous

tu as bien travaillé !

  • garde ta feuille de saisie
  • enlève tout VBA
  • fais un TCD

si tu veux on t'aidera. Tu veux ?

Salut a tous,

J'ai essayer d'arranger mon programme, il fonctionne bien mieux et ne bug plus grâce a vos remarques.

Je voudrais bien svp si possible une macro pour pouvoir insérer et ou supprimer une ligne sans effacer la formule

contenu dans les cellules de la colonne (E).

Merci pour l'aide que vous m'avez apporter.

Cdlt Ray

7depenses6.xlsm (275.29 Ko)

Je voudrais bien svp si possible une macro pour pouvoir insérer et ou supprimer une ligne sans effacer la formule

Inutile !! car si tes données sont en tableau les formules ont héritées des lignes précédentes ... encore une fois excel est pas mal fichu !

re

comme Steelson : pas besoin de VBA

(ouii, VBA permet de créer des formulaires et ça fait "pro". Mais il faut savoir qu'aucun progiciel n'est fait avec Excel)

avec Excel on fait d'excellentes applis, mais à petit niveau, sans toutes les fonctionnalités des progiciels.

regarde l'exemple (j'ai fait plus sobre, les couleurs criardes nuisent à la lisibilité)

n'oublie pas de supprimer toutes les macros

Salut Steelson

Salut jmd,

j'ai fait un essai rapide et supprimer tout le vba

mais j'ai une colonne qui ne comptabilise plus

je refais un essai demain j'aurai plus de temps

juste pour la blague, il est pas beau ton tableau

je n'ai pas dit qu'il n'ai pas efficace.

Bonne soirée a toi et merci.

Cdlt Ray

Salut Ray,

sans remettre en cause le moins du monde la justesse des réflexions de Steelson et jmd (salut Messeigneurs), j'ai repris ton fichier et singulièrement simplifié son code.

Hormis la fonction, il ne reste que :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iTRow%, sCol As String
'
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
'
If Not Intersect(Target, Union(Range("B:B"), Range("D:D"))) Is Nothing Then
    If Target <> "" Then
        iTRow = Target.Row
        sCol = IIf(Target.Column = 2, "B", "D")
        Range(sCol & Target.Row).Characters(1, 1).Font.ColorIndex = 5
        Range("E" & Target.Row).FormulaLocal = "=SI(C" & iTRow & ">1;E" & iTRow - 1 & "-C" & iTRow & ";"""")"
    End If
End If
'
Columns.AutoFit
Application.EnableEvents = True
'
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
Dim iTRow%
'
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
'
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    If Range("A" & Rows.Count).End(xlUp).Value <> WorksheetFunction.Proper(Application.Text(Date, "[$-080c]dddd dd mmmm yyyy")) Then
        iTRow = Target.Row
        If Range("B" & Rows.Count).End(xlUp).Row - iTRow < 5 Then Rows(iTRow + 1).Insert: Rows(iTRow).Font.Color = RGB(0, 0, 0): Range("C" & iTRow).Font.Color = RGB(255, 0, 0)
        Target = WorksheetFunction.Proper(Application.Text(Date, "[$-080c]dddd dd mmmm yyyy"))
        Range("A" & iTRow).Characters(1, 1).Font.ColorIndex = 3
        Range("A" & iTRow).Characters(InStr(Target, Chr(32)) + 4, 1).Font.ColorIndex = 3
        Range("F" & iTRow).FormulaLocal = "=SI(A" & iTRow & "<>"""";fctTotaux(LIGNE());"""")"        'Formule de calcul "Dépenses Jour" colonne (F)
    End If
End If
'
Application.EnableEvents = True
'
End Sub

La mise en couleur des lignes-date est confiée à des MFC.

Deux dates identiques ne peuvent être saisies à la suite. Attention, pas de sécurité si tu cliques une cellule vide en [A] entre deux autres dates!!

Bref, j'ai fait le fichier que TU voulais! Tu en fais ce que tu veux!

A+

2depenses7.xlsm (27.56 Ko)

Salut curulis57,

Merci pour avoir repris le code, c'est sympa.

Ca fonctionne presque sauf des formules dans les cellules en colonne E et F

se trouve parfois effacer, ce qui fausse les calculs.

Il y a un moyen d'éviter l'effacement des cellules des formules mais je ne trouve plus, c'était sur le site que l'on

m'avait dit comment faire.

Merci a toi, passe une bonne journée.

Cdlt Ray

Salut Ray,

une formule ne s'efface pas par hasard : dans quelles circonstances, dis-moi?

A+

Salut Steelson

Salut jmd,

juste pour la blague, il est pas beau ton tableau

re et re salut Curulis

eliot,

tu as appris à modifier la présentation dans Excel, tu sauras trouver comment rendre joli le tableau

salut curulis57,

Effectivement les formules ne s'efface pas comme ca, mais comment faire pour éviter ce style de soucis.

J'ai fait des essais:

Si je supprime une ligne ca engendre l'erreur #REF! en colonne E ou bien la formule disparait, le calcul n'ai plus bon.

Pour la colonne F : que j'ajoute ou supprime une ligne la formule disparait complètement.

Donc je suis obliger de remonter en F2 puis re étirer la formule vers le bas idem pour la colonne E2.

Merci pour ton aide, bonne après midi.

Cdlt Ray

Salut Ray,

... suffisait d'adapter la formule!

If Target.Column = 2 Or Target.Column = 4 Then
    iTRow = Target.Row
    sCol = IIf(Target.Column = 2, "B", "D")
    If Target <> "" Then
        Range(sCol & Target.Row).Font.ColorIndex = 1
        Range(sCol & Target.Row).Characters(1, 1).Font.ColorIndex = 5
    End If
    Range("E" & iTRow).FormulaLocal = _
            "=SI(C" & iTRow & ">1;SI(E" & iTRow - 1 & "<>"""";E" & iTRow - 1 & "-C" & iTRow & ";"""");"""")"
End If

C'est là qu'on voit l'efficacité et la simplicité des tableaux Excel!

Mais, j'aime les jeux de logique VBA!

A+

7depenses7.xlsm (27.60 Ko)

Salut curulis57,

Merci pour ta réponse, c'est gentil.

Je vais essayer la modification que tu a faites.

Merci a toi pour l'aide apporter, avec un peu d'avance mais bon W-end a tous.

Cdlt Ray

Salut curulis57,

Merci pour tes efforts, mais ca fonctionne pas, il y a pleins d'erreur qui se cumule, effacement de formule ou le fond de cellule qui disparait, calcul faux, etc etc etc, je ne suis pas étonné car j'ai beaucoup chercher sur le net et je n'ai pas trouver un code qui fonctionne correctement pour l'insertion de lignes ou supprimer des lignes sans effacer les formules, j'ai vu sur le site tout ce qui touche le sujet sans avoir eu quelque chose qui fonctionne bien.

Donc malgré mes recherches "On va laisser tomber" je vais me contenter du programme tel qu'il est, ce n'ai pas grave.

Je te remercie bien pour ton aide et recherches plus les modifications apporter au programme.

Peut être, je vais me rabattes sur la façon sans VBA comme il est dit depuis le début de ce sujet.

Je ne connais pas du tout la méthode de l'ami jmd pour les tableaux.

Si vous voulez m'apprendre, va falloir être patient car a 66 ans j'ai parfois les neurones qui se touchent

Je te souhaite un bon W-end, encore merci a tous.

Cordialement Ray

Salut Ray,

comprends pas !

J'ai supprimé, ajouté, re-supprimé, re-ajouté n'importe quelle ligne et ça fonctionnait sans souci !

Quelqu'un d'autre (internautes, hein ! ) a chipoté dessus, qui pourrait donner son avis ?

A+

Rechercher des sujets similaires à "deux soucis finaliser mon fichier"