Extracton de données vers autre feuille si

bonjour,

Pour commencer, je vous remercie de m'accueillir sur ce forum.

Voila, j'ai créer un tableau simple pour me permettre de suivre mes dépenses mensuelles sur 12 mois (1 feuille=1mois).

Afin de mieux prendre en compte le paiement en plusieurs fois par chèque ou CB, j'aimerai pouvoir transferer des données sur le ou les mois suivants, en fonction du nombre de chèque ou CB.

Par exemple:

Je fais un achat de pneumatique pour mon véhicule pour un montant de 500€. Je paye avec 4 chèques (4*125€).

Dans la cellule E27 de la feuille "Mai", j'inscris 125 (je mets ma cellule en rouge) et en F27, j'inscris 4.

Je souhaiterais que des lors que ma cellule se colorie en rouge, qu'automatiquement le montant du chèque aille s'incrire sur les feuilles suivantes en fonction du nombre de chèque.

Dans mon cas, il faudrait:

"Juin": E27=125 ; F27=3

"Juillet": E27=125 ; F27=2

"Aout": E27=125 ; F27=1

Je vous remercie de bien vouloir m'aider s'il vous plait.

Cordialement

Petu

20budget-krys.zip (9.50 Ko)

Bonsoir petula,

Voici un code qui fait à peu près ce que tu veux. Il s'exécute quand un nombre de paiement est inscrit dans la colonne F ou G seulement si la cellule à sa gauche (montant) est déjà en rouge. En effet, la procédure "Worksheet_Change" s'exécute seulement si la valeur d'une cellule change (pas la couleur).

Donc :

Écrire un montant et mettre la cellule en rouge

Taper un nombre de paiements

Notes :

Il faut recopier le code dans toutes les feuilles.

Il faut aussi que toutes les feuilles soit identique (même gabarit)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NbPaiements As Integer
Dim Paiement As Double
Dim NoFeuille As Integer
Dim i As Integer

On Error Resume Next
If Target.Column = 6 Or Target.Column = 8 Then
    If Target.Offset(0, -1).Interior.ColorIndex = 3 Then
        Paiement = Target.Offset(0, -1)
        NbPaiements = Target
        For i = 1 To NbPaiements - 1
            With ThisWorkbook.Sheets(ActiveSheet.Index + i)
                .Range(Target.Address).Offset(0, -1) = Paiement
                .Range(Target.Address) = NbPaiements - i
            End With
        Next i
    End If
End If

End Sub

A+

bonjour,

Je m'excuse pour le retard.

J'ai essayé, mais ça ne marche pas.

Peux tu m'expliquer comment insérer le code, histoire de voir si j'ai bien fait s'il te plait.

Je te remercie

Petu

Bonjour petula,

Voici ton fichier avec le code dedans. Il faut mettre le code dans chacune des feuilles. Pour l'instant, je ne l'ai mis que dans les feuilles Mai, Juin, Juillet et Août.

(note: j'ai dû enlever quelques onglet dans ton fichier car il était trop volumineux...)

Pour mettre le code dans une feuille :

1. ALT + F11 pour ouvrir l'éditeur VBA

2. À gauche, dans l'arborescence, trouve ton fichier et sous "Microsoft Excel Objects", la feuille voulue. Double clique dessus.

3. Copier le code dans le carré blanc à droite...

23budget-krys.zip (17.81 Ko)

A+

bonjour,

Je te remercie, je regarde ce que ça donne, et je te dis.

Merci

Petu

bonjour Grand Chaman,

-- Sam Mai 07, 2011 2:41 pm --

je te remercie pour ton aide, le résultat correspond exactement à ce que je voulais.

Un grand merci à toi.

Petu

-- Sam Mai 07, 2011 3:00 pm --

désolé, je ne sais plus comment mettre que le sujet est résolu

Bonjour,

a resolu3

re-

pourquoi je ne peux pas cocher la case "valider"?

Petu

Rechercher des sujets similaires à "extracton donnees feuille"