Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 10h59   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 10
Points : 10
Par défaut enregistrement des modifications

Bonjour à toutes et tous,

Je dispose dune BDD qui va subir des MAJ importantes. Je voudrais garder une trace des personnes et des lignes excel qui ont subit une MAJ.
Non pas toutes les modifications mais juste la porte d'entrée qui est un code unique à chaque ligne

Le must serait d'enregistrer le nom de l'ordi du dernier utilisateur et en dessous les codes qui ont subit une MAJ, en sachant que le nombre de MAJ par utilisateur de ne 'excéder 154 lignes, ainsi que la date de MAJ. Comment enregistrer ce "rapport" sur une feuille excel et à la suite, c'est-à-dire sans écraser les anciennes données?

exemple :

Dernier utilisateur   Code MAJ    Date
FPO                   125694      19.10.2011
FPO                   125656      19.10.2011
EGE                   153649      20.10.2011
Merci de votre aide,

Kaboche
kaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 11h11   #2
Membre éclairé
 
Avatar de Nako_lito
 
Développeur .NET
Inscription : mai 2008
Messages : 561
Détails du profil
Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : mai 2008
Messages : 561
Points : 390
Points : 390
tu veux enregistrer les informations sur la meme feuille que la liste des users ou qqp ailleurs ?
__________________
- La dernière fois que j'ai testé ca fonctionnait !
- Vous n'avez rien modifié ?
- Non ! Je suis pas idiot non plus.
- ....
- Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.
Nako_lito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 11h18   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 10
Points : 10
non, sur un worksheet différent !
kaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 11h26   #4
Membre éclairé
 
Avatar de Nako_lito
 
Développeur .NET
Inscription : mai 2008
Messages : 561
Détails du profil
Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : mai 2008
Messages : 561
Points : 390
Points : 390
dans ce cas là, il te faut rajouter une feuille a ton classeur, et pour chaque ligne de la feuille initiale, renseigner ton "Dernier utilisateur/Code MAJ/Date"

Tu peux récupérer les information d'une cellule avec .range(x,y).

tu aura qqc du genre :

pour chaque ligne dans "feuille 1"
"feuille 2".range("A" & ligne.row) = Dernier utilisateur/Code MAJ/Date
fin pour chaque
__________________
- La dernière fois que j'ai testé ca fonctionnait !
- Vous n'avez rien modifié ?
- Non ! Je suis pas idiot non plus.
- ....
- Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.
Nako_lito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 11h34   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 10
Points : 10
Merci mais je ne vois pas trop comment je peux codifier tout ça.
C'est bien la le problème, je suis novice et je ne vois pas trop les lignes de codes à taper !
kaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 11h49   #6
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour
Une piste

Pour le nom de la machine
Code :
Environ("COMPUTERNAME")
Pour le nom du login
Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/10/2011, 11h56   #7
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 10
Points : 10
merci jean-pierre, nickel pour cette donnée
kaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 16h40   #8
Membre éclairé
 
Avatar de Nako_lito
 
Développeur .NET
Inscription : mai 2008
Messages : 561
Détails du profil
Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : mai 2008
Messages : 561
Points : 390
Points : 390
humm :/ pour le code, ca fait un moment que je n'ai pas touché a VBA, mais je dirais :

Code :
1
2
3
 For Each Cell In ThisWorkbook.Sheets("Feuil1").Range("A1").CurrentRegion.Rows
        ThisWorkbook.Sheets("Feuil2").Cells(Cell.Row, 1) = "toto"
Next Cell
Par contre, attention avec la méthode que j'utilise, a savoir le .CurrentRegion, il va te retourner le nombre de ligne de toute les cellules attenante a A1.

sur tu as, mettons :
A1 toto
A2 titi
A3
A4 tata

la CurrentRegion.Rows de A1 te retournera 2.
si tu veux qu'ils te retourne 4 (en sachant qu'une ligne n'est pas utilisée et que tu aura un enregistrement "pour rien")
tu peux utiliser la méthode :

.Range("A65536").End(xlUp).Row --> retourne 4.

ensuite tu peux renseigner des condition en spécifiant que si la valeur dans Ax est vide, tu ne rempli pas dans la seconde feuille, mais tu laisse quand meme un blanc (pour ne pas créer de décallage).
__________________
- La dernière fois que j'ai testé ca fonctionnait !
- Vous n'avez rien modifié ?
- Non ! Je suis pas idiot non plus.
- ....
- Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.
Nako_lito est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h03.


 
 
 
 
Partenaires

Hébergement Web