Demande d'aide en VBA

Mana81

XLDnaute Nouveau
Bonjour,
J'ai besoin de votre aide en VBA.
J'ai deux fichiers Excel : "Dossiers Logo Paramédicaux" et "Récapitulatif".
J'encode des informations dans le 1er fichier et je souhaiterai que ces données soient ajoutées dans le 2ème fichier. Il ne s'agit pas ici simplement d'un copier-coller.
Je souhaiterai que ces données soient ajoutées à la suite de tout ce qui existe déjà dans le fichier "Récapitulatif"; donc il faut en fait lui dire de rechercher la dernière cellule vide de la colonne A dans le fichier "Récapitulatif" et coller les données à partir de cette cellule +1.
Pourquoi +1 : car je souhaiterai en effet qu'entre chaque nouvelle donnée, je puisse insérer une ligne à travers tout le tableau en gris foncé.
Je vous joins les deux fichiers.
Merci d'avance pour votre aide.
Bien à vous,
 

Pièces jointes

  • DOSSIERS LOGO PARAMEDICAUX.xlsx
    10.7 KB · Affichages: 21
  • recapitulatif copie.xlsx
    9.6 KB · Affichages: 15

Mana81

XLDnaute Nouveau
Bonjour,

auriez-vous la gentillesse de m'aider en VBA svp :

dans un fichier excel, j'ai plusieurs feuilles.
je souhaiterais sur une feuille obtenir la date et l'heure de l'enregistrement.
attention, si par ex. 20 modifications ont été faites le même jour dans une feuille, je souhaiterai qu'il écrase les autres enregistrements et qu'il ne garde que le dernier.
et par contre, insérer à la suite l'enregistrement du jour suivant.
le but étant d'avoir un historique journalier

pourriez-vous m'aider?

d'avance, je vous en remercie.
Bien à vous

J'ai utilisé ceci :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Feuil1")
.Range("F1") = Now()
End With
End Sub

mais cela ne correspond pas à un historique :(
 

JM27

XLDnaute Barbatruc
bonsoir
peut être comme cela
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Sheets("Feuil1").Range("A2") <> "" Then
        DatePrécedente = Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
        If Date > DatePrécedente Then
            Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1) = Now
        Else
            Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row) = Now
        End If
    Else
        Sheets("Feuil1").Range("A2") = Now
    End If
End Sub
 

Mana81

XLDnaute Nouveau
bonsoir
peut être comme cela
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Sheets("Feuil1").Range("A2") <> "" Then
        DatePrécedente = Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
        If Date > DatePrécedente Then
            Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1) = Now
        Else
            Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row) = Now
        End If
    Else
        Sheets("Feuil1").Range("A2") = Now
    End If
End Sub


bonjour,
Merci pour votre rapidité :)
Pouvez-vous m'expliquer que je comprenne le language que vous utilisez?
Merci et bien à vous.
 

JM27

XLDnaute Barbatruc
bonjour
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' je viens tester la première ligne de destination , si celle ci est vide , le fichier est "neuf" j'inscris la date du jour
If Sheets("Feuil1").Range("A2") <> "" Then
' je viens chercher la dernière date d'enregistrement du fichier
DatePrécedente = Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
' Si la date du jour est supérieure à la date d'enregistrement ( nous sommes au moins un jour plus tard)
If Date > DatePrécedente Then
' Je viens inscrire dans la cellule suivant la date d'enregistrement
Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1) = Now
Else
' Je viens écraser la dernière date du jour ( mise à l'heure de l'enregistement)
Sheets("Feuil1").Range("A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row) = Now
End If
Else
' si le fichier est" neuf" je viens inscrire la date du jour dans la première cellule
Sheets("Feuil1").Range("A2") = Now
End If
End Sub
 

Pièces jointes

  • Classeur1.xlsm
    15.9 KB · Affichages: 14

Mana81

XLDnaute Nouveau
re-bonjour,
je vais tester votre module. un peu débordée en ce moment.

je rencontre un probème par rapport à ma première demande de décembre.
je n'arrive plus à ouvrir mon module.
voici le message : il me met : le projet ne peut être affiché.

upload_2019-1-30_11-38-32.png


je suis bien dans l'embarras.
pouvez-vous m'aider svp?
 

JM27

XLDnaute Barbatruc
A priori uniquement les macros ne sont pas affichées, ce qui n’empêchent pas qu'elles fonctionnent.
je n'en suis pas sur , car je n'utilise jamais de classeur partagé.
Si tu as besoin de les modifier , tu supprimes le partage et tu le remets ensuite
 

Mana81

XLDnaute Nouveau
A priori uniquement les macros ne sont pas affichées, ce qui n’empêchent pas qu'elles fonctionnent.
je n'en suis pas sur , car je n'utilise jamais de classeur partagé.
Si tu as besoin de les modifier , tu supprimes le partage et tu le remets ensuite


plus rien ne fonctionnait :(
je vais donc leur dire de ne pas travailler dedans en même temps...
ou alors visible en lecture seule si elles souhaitent voir un dossier en particulier....
:)
 

JM27

XLDnaute Barbatruc
On peut sans partager le classeur
si celui-ci est en lecture seule , le refermer automatiquement. (de manière que les gens ne travaillent pas sur un classeur en lecture seule sans faire attention et ne peuvent pas par la suite l’enregistrer) ( c'est comme cela que je procédais quand j'étais en activité)
on peut en plus indiquer qui a effectué le dernier enregistrement


issu de internet
un fichier partagé accepte les macros, il n'accepte pas leur modification tant que le partage est actif.
Il y a seulement quelques fonctionnalités interdites surtout dues à leur indisponibilité sur un classeur partagé.
 

Pièces jointes

  • Classeur1.xlsm
    16.4 KB · Affichages: 15
Dernière édition:

Mana81

XLDnaute Nouveau
On peut sans partager le classeur
si celui-ci est en lecture seule , le refermer automatiquement. (de manière que les gens ne travaillent pas sur un classeur en lecture seule sans faire attention et ne peuvent pas par la suite l’enregistrer) ( c'est comme cela que je procédais quand j'étais en activité)
on peut en plus indiquer qui a effectué le dernier enregistrement


issu de internet
un fichier partagé accepte les macros, il n'accepte pas leur modification tant que le partage est actif.
Il y a seulement quelques fonctionnalités interdites surtout dues à leur indisponibilité sur un classeur partagé.



SUPER !! je vais tester tout cela !
un grand merci pour votre aide si précieuse :)
 

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet