copie sous condition avant la fermeture du fichier

dj.run

XLDnaute Nouveau
Bonjour à tous et à toutes,

En ce beau dimanche, j'ai encore besoin de votre aide. je vous explique:

Je voudrai, avant la fermeture (beforeclose) de mon application adhérents, si la valeur de la cellule Q3 de la feuil2 est différente de 0.

1) qu'il m'ouvre mon fichier Récap.xls dont l'adresse est c:\che\Récap.xls.

2) qu'il me copie les valeurs des cellules de mon application adhérents:

fichier adhérents\adhé dans Récap\feuil1

C5 dans Récap\feuil1 cellule A2 (si elle n'a pas déjà une valeur, sinon en dessous)
C6 dans Récap\feuil1 cellule B2 (si elle n'a pas déjà une valeur, sinon en dessous)
C16 dans Récap\feuil1 cellule C2 (si elle n'a pas déjà une valeur, sinon en dessous)
C17 dans Récap\feuil1 cellule D2 (si elle n'a pas déjà une valeur, sinon en dessous)

fichier adhérents\Feuil2 dans Récap\feuil2

Q3 dans Récap\feuil1 cellule E2 (si elle n'a pas déjà une valeur, sinon en dessous)


Je vous remercie par avance pour votre aide car moi je perds l'air.....

Djrun
 

Spitnolan08

XLDnaute Barbatruc
Re : copie sous condition avant la fermeture du fichier

Bonsoir,

L'utilisation de cette merveille d'enregistreur automatique de macro devrait te permettre de réaliser ton rêve sans difficulté.

Met les volets à zéro et tu devrais pouvoir reprendre l'air:D

Cordialement
 

dj.run

XLDnaute Nouveau
Re : copie sous condition avant la fermeture du fichier

Bonjour à tous,

après avoir suivit le bon conseil de Spitnolan08,


Bonsoir,

L'utilisation de cette merveille d'enregistreur automatique de macro devrait te permettre de réaliser ton rêve sans difficulté.

Met les volets à zéro et tu devrais pouvoir reprendre l'air:D

Cordialement

et quelques heures plus tard, je ne trouve toujours pas la solution à mon problème de copie avant fermeture.

Si quelqu'un avait la gentillesse de me donner un petit coup de main, cela serait bienvenue

Dj.run
 

Spitnolan08

XLDnaute Barbatruc
Re : copie sous condition avant la fermeture du fichier

Re,

J'ai été un peu dur avec toi...
Si bien compris, pour t'aider à te remettre en selle; à place dans le module thisworkbook :
Code:
Private Sub Workbook_Open()
If Sheets("Feuil2").Range("Q3") = 0 Then Exit Sub
[COLOR=Green] '1/[/COLOR]
Workbooks.Open Filename:="C:\che.Recap.xls"
[COLOR=Green] '2/[/COLOR]
With Workbooks("che.Recap.xls")
    If Range("A2") <> "" Then
        Range("A2") = .Range("C5")
    Else
        Range("A3") = .Range("C5")
    End If
[COLOR=Green] 'Je te laisse continuer...[/COLOR]
End With
End Sub
Si tu n'y arrives pas reviens

Cordialement
 
Dernière édition:

dj.run

XLDnaute Nouveau
Re : copie sous condition avant la fermeture du fichier

Bonjour a tous,

Si quelqu'un avait une idée (et je sais que ça manque pas ici) pour me donner un petit coup de pouce car je n'arrive pas à résoudre mon probleme, je butte sur la boucle (et je suis pas fort en boucle.........), l'enregistreur de macro aide bien en quelque sorte mais pas pour les boucles...

je remercie d'avance toutes les bonnes âmes qui pourront en passant sur ce fil me donner un coup de main.

DJ.RUN
 

dj.run

XLDnaute Nouveau
Re : copie sous condition avant la fermeture du fichier

Bonjour a tous,

Pour répondre à ta question Spitnolan08, il y a une boucle dans ma copie sur Recap, car chaque fois que j'ouvre mon fichier adherent, si la valeur de la cell Q3 de la feuil2 est différente de 0, a la fermeture il me les copie dans mon fichier recap par succession les valeurs des cell C5,C6,C16,C17 etc....dans les colonnes A (a partir de A2) B,C,D,E. En fait je veux faire un historique dans mon fichier Recap .
et si par exemple la cell de destination A2 a déja une valeur il faut copier en A3 et etc ...
et là pour ce faire je crois qu'il faut faire une boucle? non ?

et l'idéal même serai qu'il fasse une recherche d'existence de la valeur des cellules C5 dans la colonne A (de Recap) et C6 dans la colonne B (de recap) et si elles existent déjà, qu'il ne copie uniquement la valeur de la cellule Q3 (d'adherent, feuil2) dans la colonne E (de Recap)

mais ça c'est trop dur pour moi et je pense resoudre le probleme avec des formules dans la feuille .

J'espère que j'ai été assez clair dans mes explications, c'est pas facile d'expliquer par écrit ce que l'on veut faire et mon Fichier adhérent est trop lourd. (je vais voir si je peux pas faire un extrait et le joindre).

Merci encore à toi Spitnolan08, de passer de ton temps sur mon problème.

DJ.RUN
 

Pièces jointes

  • CHE_Fiche_adhérent_extrait.zip
    31.7 KB · Affichages: 62

Spitnolan08

XLDnaute Barbatruc
Re : copie sous condition avant la fermeture du fichier

Re,

Si j'ai compris (Tes explications demandent quand même un peu de réflexion car tu n'indiques pas dans quelles feuilles et/ou fichier se trouvent tes cellules source et destination...) tu ne peux pas faire de boucle. En effet, il n'y a pas de logique à ta succession de cellules qui puisse permettre de faire une boucle de façon simple.

Quand je t'ai indiqué :
'Je te laisse continuer...
J'entendais qu'il fallait que tu fasses la même chose pour les cellules suivantes...
A moins que tu ne trouves une relation mathématique reliant toutes tes cellules source et tes cellules destination.

Un essai en pièce jointe avec une solution de contournement si bien compris...

Cordialement
 

Pièces jointes

  • recap reglements dus.zip
    5.2 KB · Affichages: 38
  • recap reglements dus.zip
    5.2 KB · Affichages: 31
  • recap reglements dus.zip
    5.2 KB · Affichages: 32

dj.run

XLDnaute Nouveau
Re : copie sous condition avant la fermeture du fichier

Re bonjour Spitnolan08 et les autres aussi,

Comme je l'avais indiqué :

"chaque fois que j'ouvre mon fichier adherent, si la valeur de la cell Q3 de la feuil2 est différente de 0, a la fermeture il me les copie dans mon fichier recap par succession les valeurs des cell C5,C6,C16,C17 etc....dans les colonnes A (a partir de A2) B,C,D,E. En fait je veux faire un historique dans mon fichier Recap .
et si par exemple la cell de destination A2 a déja une valeur il faut copier en A3 et etc ..."

en fait mon fichier source est le fichier CHE fiche adherent feuille adherent et la feuille feuille de monte. et mon fichier cible est recap reglements dus.

En espérant avoir été plus clair .

et en te remerciant encore Spitnolan08 du temps que tu m'accordes

DJ.RUN
 

Spitnolan08

XLDnaute Barbatruc
Re : copie sous condition avant la fermeture du fichier

Re,

Je ne comprenais pas ta dernière réponse qui n'abordait en aucun cas le fichier transmis. Mais je viens de me rendre compte que je m'étais trompé de fichier : donc voici celui dont je te parlais dans mon précédent post...
Désolé!

Cordialement
 

Pièces jointes

  • CHE_Fiche_adh‚rent_extrait.zip
    26.6 KB · Affichages: 42
  • CHE_Fiche_adh‚rent_extrait.zip
    26.6 KB · Affichages: 46
  • CHE_Fiche_adh‚rent_extrait.zip
    26.6 KB · Affichages: 47

dj.run

XLDnaute Nouveau
Re : copie sous condition avant la fermeture du fichier

Bonjour à tous et à toi Spitnolan08,

Je crois Spitnolan08 que l'on se comprend pas...... lol

mais j'ai bon espoir qu'on y arrive.

En fait je travaille sur le fichier CHE fiche adherant et quand j'ai fini avec un adherant je voudrai extraire certaines valeurs (cell : C5, C6, C16, C17 de la feuil adherent et cell Q3 de la feuil feuille de monte) vers le fichier recap reglements dus feuil1.

mais cette extraction ne doit ce faire que si la valeur de la cellule q3 du fichier CHE adherent, feuille feuille de monte est differente de 0.

ça c'est la base de mon probleme.

Mais l'idéal serait qu'il fasse une mise à jour si un adherent existe déja dans le fichier recap reglements du.

je te fais parvenir un nouvel exemple.

Encore une fois merci pour ton aide.

DJ.RUN
 

Pièces jointes

  • recap reglements dus.zip
    35.5 KB · Affichages: 27
  • recap reglements dus.zip
    35.5 KB · Affichages: 31
  • recap reglements dus.zip
    35.5 KB · Affichages: 32

Spitnolan08

XLDnaute Barbatruc
Re : copie sous condition avant la fermeture du fichier

Re,
Je crois Spitnolan08 que l'on se comprend pas...... lol
Ca doit être vrai... car pour moi, ce que je t'ai transmis fait ce que tu demandes :
si l'adherent toto tata n'existe pas dans le fichier recap reglements dus alors Excel doit le créer à la suite des autres.
Et donc je résous la base de ton problème...

Je n'ai pas traité l'autre partie, mais avant de m'en occuper j'aimerais savoir si tu as testé ce que je t'ai transmis. Et si oui, où cela ne va t il pas ? Nota : je ne savais ce que représentait le nombre de forfait, donc cette information n'est pas reprise dans le code. (S'agit il de la cellule Q3 de la feuille "Feuille de monte" ?)

Cordialement
 

dj.run

XLDnaute Nouveau
Re : copie sous condition avant la fermeture du fichier

Re bonjour à tous,

Oui Spitnolan08, ce que tu m'as transmis fonctionne quand je ferme le fichier CHE fiche adherent, si la cell q3 (nb de forfaits de monte dus) est different de 0, en fermant le fichier cela me met à jour mon fichier recap .

tout a fait le nb de forfait dus correspond à la cellule Q3 du fichier CHE adherent, feuille : feuille de monte.

On va y arrivé à ce comprendre .... lol désolé pour le nb de forfait dus (cell Q3) j'avais omis de te le dire. (ça doit être le décalage horaire.....lol + 3 heures pour nous)

Cordialement et avec surtout un GRAND MERCI

DJ.RUN
 

Spitnolan08

XLDnaute Barbatruc
Re : copie sous condition avant la fermeture du fichier

Re,

Une proposition en pièce jointe à adapter à ton fichier original. Utilise une recherche du nom puis du prénom par la méthode Find qui est plus rapide que des boucles imbriquées dans le cas d'un nombre d'adhérents important.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim DerLig As Long
Dim Cel1 As Range
Dim firstaddress As String

DerLig = Workbooks("recap reglements dus.xls").Sheets("Feuil1").Range("A65500").End(xlUp).Row + 1
If Sheets("Feuille de monte").Range("Q3") = 0 Then Exit Sub

With Workbooks("recap reglements dus.xls").Sheets("Feuil1")
[COLOR=Green] '***Recherche si adhérent existe déjà[/COLOR]
    Set Cel1 = .Range("A2:A" & DerLig).Find(Range("L1").Value)
    firstaddress = Cel1.Address
    
    If Not Cel1 Is Nothing And Cel1.Offset(0, 1) = Range("M1").Value Then
        DerLig = Cel1.Row
    Else
        Do
            Set Cel1 = .Range("A2:A" & DerLig).FindNext(Cel1)
            If Cel1.Offset(0, 1) = Range("M1").Value Then DerLig = Cel1.Row
        Loop While Not Cel1 Is Nothing And Cel1.Address <> firstaddress
    End If

[COLOR=Green] '***Renseigne le fichier recap[/COLOR]
   For j = 1 To 5
    .Cells(DerLig, j).Value = Cells(1, 11 + j).Value
   Next
End With
End Sub
Cordialement
 

Pièces jointes

  • CHE_Fiche_adh‚rent_extrait.zip
    27.5 KB · Affichages: 60
  • CHE_Fiche_adh‚rent_extrait.zip
    27.5 KB · Affichages: 56
  • CHE_Fiche_adh‚rent_extrait.zip
    27.5 KB · Affichages: 60

Discussions similaires

Statistiques des forums

Discussions
312 508
Messages
2 089 137
Membres
104 045
dernier inscrit
Megajoules