deuxieme essai

K

kigalere

Guest
semblerai que ca n'ai pas marche je recommence [file name=recapfatcures_20050906112343.zip size=14217]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/recapfatcures_20050906112343.zip[/file]
 

Pièces jointes

  • recapfatcures_20050906112343.zip
    13.9 KB · Affichages: 15

Hellboy

XLDnaute Accro
Bonjour kigalere

En passant, s.v.p, pourrais-tu demeurer sur le même Post lorsque que cela concerne ta question originale. Merci !

Bon maintenant, si j'ai bien compris, tu désire que la macro1 s'exécute lorsque D contient de l'information et que A,B,C de la même ligne n'on rien.

Pour ce faire, tu peux utiliser une procédure évènementiel. Dans ton fichier exemple, j,ai mis cette macro ds le module de la feuille 1:



Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 4 Then
       
If Not Target.Value = Empty Then
                       
If Target.Offset(-1, 0).Value = Empty And Target.Offset(-2, 0).Value = Empty And Target.Offset(-3, 0).Value = Empty Then
                               
Call Macro1
                       
End If
       
End If
End If



End Sub

En gros ce que ça fait, c'est que a chaque fois qu'il y a un changement ds la feuille 1, cette macro s'exécute et exécutera la macro1 si elle rencontre toutes les conditions.

En passant, a titre d'info de connaissance perso., tu sais ce bout de code:


If (Day(Date) = 1) Then
'chaque premier du mois on ajoute une feuille du nom du mois'
'Copier sur la feuille créer la feuille originalRécapMois
'enregistrer la feuille sous le nom du mois correspondant'

       
               
       
If (Month(Date) = 3) Then
            Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
        ActiveSheet.Name = 'Mars'
       
End If
       
       
If (Month(Date) = 4) Then
            Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
        ActiveSheet.Name = 'Avril'

       
End If

Tu peux le traiter aussi de cette façon aussi. Etant donner que la ligne de commande qui copy ton sheet est la même:


If (Day(Date) = 1) Then
'chaque premier du mois on ajoute une feuille du nom du mois'
'Copier sur la feuille créer la feuille originalRécapMois
'enregistrer la feuille sous le nom du mois correspondant'
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
       
       
Select Case Month(Date)
                   
Case 1
                                ActiveSheet.Name = 'Janvier'
                   
Case 2
                                ActiveSheet.Name = 'Fevrier'
                   
Case 3
                               
'    etc *******

       
End Select

End If


a+

Message édité par: Hellboy, à: 06/09/2005 14:02
 
K

kigalère

Guest
bonjour philippe et Bonjour tout le monde,
je m'excuse de ne pas etre rester sur le même post mais cela provient d'une erreur de manip je galerai tellement pour joindre un fichier due j'ai faix des betises :eek: :eek:
en tout cas je te remercie de m'avoir repondu :p
j'ai bien appliquer ton programme cependant je souhaiterai aussi savoir s'il est possible que la macro s'active sans que l'on ai à chaque fois à appuyer sur executer lmacro
en fait il faudrait que le macro soit activer tout le tmps , je crois :sick:
 

Hellboy

XLDnaute Accro
re

Excuse moi, je me suis tromper de procédure évènemenciel.

N,oublie pas, tu dois mettre cette procédure ds un module feuil. Le traitement va être automatique !



Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
       
If Not Target.Value = Empty Then
           
If Target.Offset(0, -1).Value = Empty And Target.Offset(0, -2).Value = Empty And Target.Offset(0, -3).Value = Empty Then
                   
Call Macro1
           
End If
       
End If
End If
End Sub



Message édité par: Hellboy, à: 06/09/2005 15:08
 
K

kigalère

Guest
Helboy,
je te REMERCIE BEAUCOUP BEAUCOUP BEAUCOUP
je suis trop contente ca marche!!!

par contre je ne vois toujours pas comment faire autrement pour coller une ligne au mois correspondant

siquelqu'un a une idee je suis toujours à votre ecoute
merci encore à toi Helboy ainsi ka tout ce qui ont pris le temps de lire ce post

Merci
a +
 

Hellboy

XLDnaute Accro
re

Je content que cela fasse ce que tu souhaitais.

Maintenant, tu pourrais me guider un peu plus concernant:

par contre je ne vois toujours pas comment faire autrement pour coller une ligne au mois
correspondant

Si tu peux me donner une meilleur idée sur quoi tu va te baser pour exécuter cette action et l'action se base sur quel logique pour s'exécuter ?

Merci !
 
K

kigalère

Guest
bonjour a tous,
il semblerai ke l'orage d'hier ne soit pas responsable du non passage de mon fichier
donc je recommence en esperant que cette fois ca passse

voila la macro ke j'ai commencer mais ki ne marche pas

pourriez vous m'aider SVP

merci à tous de votre precieuse aide

Sub RécapParMois()
'
' RécapParMois Macro
' Macro enregistrée le 08/08/2005 par kigalère
'
' si daté du jour correspond à 1/01/05 '
' faire'
'ouvrir un fichier sous le nom du mois '

Dim i As Integer
i = 72

Dim j As Integer
j = 4


If (Day(Date) = 1) Then
'chaque premier du mois on ajoute une feuille du nom du mois'
'Copier sur la feuille créer la feuille originalRécapMois
'enregistrer la feuille sous le nom du mois correspondant'

If (Month(Date) = 1) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Janvier'
End If

If (Month(Date) = 2) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Fevrier'
End If

If (Month(Date) = 3) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Mars'
End If

If (Month(Date) = 4) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Avril'
End If

If (Month(Date) = 5) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = ' Mai'
End If

If (Month(Date) = 6) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Juin'
End If

If (Month(Date) = 7) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Juillet'
End If

If (Month(Date) = 8) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Aout'
End If

If (Month(Date) = 9) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Septembre'
End If

If (Month(Date) = 10) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Octobre'
End If

If (Month(Date) = 11) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Novembre'
End If

If (Month(Date) = 12) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Decembre'
End If

End If

' JUSKE LA CA MARCHE !!!!!!!!!!!
' JUSKE LA CA MARCHE !!!!!!!!!!!
' JUSKE LA CA MARCHE !!!!!!!!!!!
' JUSKE LA CA MARCHE !!!!!!!!!!!



While (Range('B' & i).Value <> '')
If (Range('B' & i).Value = 7) Then 'si B vaut 7 envoyer dans copier la ligne à la dernière ligne du mois de aout
With Worksheets('Aout').Select ' ouvrir la feuille aout
While (Sheets('Aout').Range('A' & j).Value <> '') 'tant que A dans la feuille Aout n'est pas nul faire
If (Sheets('Aout').Range('A' & j).Value <> Sheets('RécapFactures').Range('A' & i).Value) Then
j = j + 1
End If
If (Sheets('Aout').Range('A' & j).Value = '') Then
ActiveSheet.Paste Destination:=Worksheets('RécapFactures').Range(i)
End If
Wend
i = i + 1
End With


End If

Wend


End Sub
 
K

kigalère

Guest
explication et REBONDISSEMENT de nat54

Re,

il semblerai ke ca ne marche pas et je comprend pas pourkoi ....
en tout ca ce que je voudrai faire c'est ca:

Des kil y a un changement la macro s'active
Tant que D est plein;
la macro regarde ce que vaut B de la même ligne
( si B vaut 8 alors elle ouvrira la feuille septembre - il y a un decalage de 1 avec le numero du mois dans le compteur du numero des facture)
un fois le feuille du mois ouverte elle regardera si parmis les case D pleine il y en a une egale au D de la feuille recap facture
(les feuille recap de mois et recap facture ont le meme entete de colonne)
si la valeur de D n'est pas deja enregister dans le mois correspondant alors elle l'inscrira à la fin de la liste en copiant le ligne de la feuille recap factures
la macro s'arret quand D est vide




par contre pour le REBONDISSEMENT De nat 54
je crois kil faut que tu écrive

Sub Auto_Open_Nomdeta macro()
....
End Sub

et normalement ta macro s'executera à l'ouverture de ta feuille
essaye car je suis pas sure
 
K

kigalère

Guest
Re:explication et REBONDISSEMENT de nat54

bonjour Helboy

j'ai bien lu le lien fichier lien mais se passe paspourtant j'ai bien fait comme c'étsit indique

mais pourrais tu quand même m'aider svp

sinon pour repondre a ta questiion nat à rebondi sur cepost pour poser un question
voila

dans tout les cas merci de ton écoute et de ton aide

kigalère
 

Discussions similaires

Statistiques des forums

Discussions
312 970
Messages
2 094 044
Membres
105 926
dernier inscrit
Odyssea