Re: Test login et traitement | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 04-01-2012 14h51
Bonjour, je cherche toujours à optimiser ce code contenu dans cotation.xlt
1) l'adresse mail est toujours identique suivant les 4 cas de log 2) la récupération du log machine n'est pas terribles j'ai du aller modifier l'utilisateur déclaré d'excel 2007 d'un collègue 3) l'effacement total des macros n'est pas pleeinement efficace il reste du code et à l'ouverture du fichier sauvegardé j'ai quand même la question voulez vous activer les macros alors que voudrais que le fichier n'en comporte plus ! 4) à l'ouverture je souhaiterais utiliser un mini formulaire demandant la saisie Société : Contact : Téléphone : Portable : Fax : Mail : 5) compléter les 2 onglets offre et offre PV voir un suivant Offre AC qui viendra à la manière la macro ci dessous mais je n'ai pas réussi à bien modifier If Nom <> "" Then With Sheets(1) .Cells(10, 3).Value = Nom .Cells(11, 3).Value = Tel .Cells(12, 3).Value = Fax .Cells(13, 3).Value = Mail .Cells(7, 10).Value = Initiales 6) après sauvegarde et juste avant fermeture fichier ou impression Remplissage de 2 onglets (structure identique de l'entête)pour l'instant d'autres éventuels à venir 1er onglet : Offre 2ème onglet : Offre PV Société en M15 Contact en K10 L11 = concaténer(téléphone / portable) Fax : L12 Mail : K13 7) et cerise sur le gâteau serait d'aller compléter le fichier cotation2012.xls comme suit définition de la ligne à remplir 2012-0001 doit écrire en ligne x donc x=0001+1 et ainsi de suite -en Dx venir mettre la date de création du fichier qui doit être figer par la macro afin que lorsque l'on ouvre après sauvegarde la date ne change plus - en Fx : Société - en Gx : Contact - en Ix : les deux dernières lettre de la variable initiales si le fichier cotation2012.xls est ouvert renvoyer un message voyez avec (utilisateur du fichier) pour qu'il vous laisse l'accès et réessayer si la ligne ou l'on souhaite écrire n'est pas vide ? je ne sais pas il vaut mieux passer une ligne mais ??? 8) on peut aussi définir le lieux de sauvegarde du fichier qui est le répertoire réseau d'ouverture du xlt 9) la sauvegarde pourrait elle aussi être inteligente obligatoire en xls pas de xlsx... et le 2012-000x fixé par test de présence de fichier dans répertoire et test de dernier remplissage dans le fichier cotation2012... 10) remplacer le 2011 de la macro par une variable de l'année en cours Si quelqu'un est interessé on pourras essayer de scinder les différents axes pour faire évoluer cela ---- Option Explicit Function login() As String login = Application.UserName End Function Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim StartLine As Long, LineCount As Long 'Tu insères ton code ici que tu veux exécuter à l'ouverture 'd'un nouveau classeur basé sur le modèle. 'Ce qui suit efface toute la procédure événementielle "Workbook_Open" On Error Resume Next If ThisWorkbook.Path = "" Then If ThisWorkbook.VBProject.Protection Then Exit Sub With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule StartLine = .ProcStartLine("Workbook_Open", 0) If StartLine Then LineCount = .ProcCountLines("Workbook_Open", 0) .DeleteLines StartLine, LineCount End If End With End If End Sub Private Sub Workbook_Open() ' DateduJour Macro ' Sheets("Offre").Range("B7").Value = Date Dim Nom As String, Tel As String, Fax As String, Mail As String, Initiales As String Select Case login Case "xxxxxxxx" Nom = "xxxxxxxx" Tel = "Tél : xxxxxxxx" Fax = "Fax : xxxxxxxx" Mail = "a.a@a.a" Initiales = "2011-0000C/xx" Case "yyyyyyyy" Nom = "yyyyyyyy" Tel = "Tél : yyyyyyyy" Fax = "Fax : yyyyyyyy" Mail = "a.a@a.a" Initiales = "2011-0000C/yy" Case "zzzzzzz" Nom = "zzzzzzz" Tel = "Tél : zzzzzzz" Fax = "Fax :zzzzzzz" Mail = "a.a@a.a" Initiales = "2011-0000C/zz" Case "wwwwwww" Nom = "wwwwwww" Tel = "Tél : wwwwwww" Fax = "Fax : wwwwwww" Mail = "a.a@a.a" Initiales = "2011-0000C/ww" Case Else MsgBox "Login non répertorié" End Select If Nom <> "" Then With Sheets(1) .Cells(10, 3).Value = Nom .Cells(11, 3).Value = Tel .Cells(12, 3).Value = Fax .Cells(13, 3).Value = Mail .Cells(7, 10).Value = Initiales End With End If End Sub
Edité par vg00 le 04/01/2012 15:22:20
|
|
|
recherchev + nom fichier dans cellule | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 04-01-2012 14h25
Bonjour,
J'ai un peu cherché et je ne trouve pas... Voici ce que je cherche à faire j'ai un fichier cotations2012.xls dans un répertoire dans ce même répertoire j'ai les fichiers 2012-0001C.xls 2012-0002C.xls etc dans mon fichier cotation2012 en A2 j'ai 2012-0001 A3 -> 2012-0002 incrémentation automatique en F2 je voudrais aller chercher la valeur M15 du fichier "A2" (2012-0001) ajout du C entre valeur cellule et nom duc fichier par formule plutôt que par macro merci d'avance par la suite je souhaiterais rapporter aussi K10 et 3 autres valeurs et XX ou XX est en fait les initiales de la personnes qui rédige l'offre j'ai une macro qui viens remplir ces cellule dans les fichiers 2012-00... voici la fin si il est pratique d'utiliser pour récupérer les initiales les 2 derniers caratères de la valeur Initiales de cette macro If Nom <> "" Then With Sheets(1) .Cells(10, 3).Value = Nom .Cells(11, 3).Value = Tel .Cells(12, 3).Value = Fax .Cells(13, 3).Value = Mail .Cells(7, 10).Value = Initiales End With End If End Sub |
|
|
PB Nombre de pages document avec mise à jour auto | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 26-01-2011 15h35
Bonjour,
Je reprends un vieux projet que j'avais un peu mis de côté Un fichier d'offre de prix ...
malheureusement en poussant un peux le code mis en place bloque excel et je n'ai plus la main |
|
|
Re: Traitement automatique série de fichier | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 20-01-2010 09h42
Bonjour,
J'ai essayé de mettre ceci en place mais ça ne marche pas j'ai essayé de mettre ceci dans thisworkbook et dans un module mais ça ne marche pas mieux voici le code que j'avais mis Sub recup() |
|
|
Traitement automatique série de fichier | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 19-01-2010 15h03
Bonjour,
compte tenu des réponses très positives obtenues sur ce forum je mets un nouveau post je cherche à faire un code vba 1) choix du répertoire à traiter 2) traitement en automatique de tous les fichiers excel contenus dans le répertoire prendre valeur K8 sans les 3 derniers caractères prendre la valeur de L11 prendre la valeur de M12 prendre la valeur de M13 prendre la valeur de L14 prendre la valeur de N16 ces 6 données à mettre en ligne changement de ligne à chaque nouveau fichier éventuellement on peut mettre une barre de progression fonction du nombre de fichier traités par rapport au nombre de fichiers xls à traiter mais c'est accessoire choix pour enregistrer le fichier au final et sortie Merci d'avance Gilles |
|
|
Re: Test login et traitement | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 19-01-2010 11h27
Bonjour,
C'est super bien rédigé ça m'avance franchement par contre il faudrait juste que l'enregistrement du fichier soit effectuer de manière automatique dans le répertoire V:\COTATIONS\ plutôt que d'être obligé de lancer la macro INITOffre et ne donne pas la main à l'utilisateur au niveau de l'enregistrement sauf si le répertoire réseau n'est pas accessible Par rapport au besoin global une fois ceci réglé un grand pas sera déja franchi du coup j'aborderai la suite du besoin à savoir : intégrer avant enregistrement de l'offre le choix du client j'entends par choix la mise en place initial d'un fichier CLIENT.XLS à mon avis toujours dans le répertoire V:\COTATIONS avec consultation sans ouverture du fichier pour choix parmi liste existante possibilité de modifier ou d'ajout un client avec ces informations choix : vide / M. / Mme / Mlle par coche NOM (obligatoire) PRENOM (facultatif) Téléphone fixe Téléphone portable (au moins un téléphone parmi les deux) Fax (facultatif) SOCIETE puis importation des données dans l'offre et à ce moment écriture dans COTATIONS 2010.XLS d N° offre (2010-0104 par exemple) | Date récupérée dans cellule A8 détaillé plus bas | SOCIETE | valeur de choix (vide / M / MMe / Mlle) | rien | Initiales (provenant du VBA case ...) | enregistrement de l'offre seulement à ce moment la pus reprise de la main pour ajouter des lignes dans l'offre j'aimerais dans COTATIONS 2010.XLS soit ajouter une colonne soit faire en sorte qu'en cliquant sur la première cellule de chaque ligne ouvrir le fichier correspondant en donnant le choix d'ouvrir le fichier 2010-0104C.XLS ou 2010-0104C.PDF merci de me dire si c'est possible Merci de votre aide précieuse et très constructive. PS : code pour obtention de la date que j'ai mis dans thisworkbook mais ça peut certainement être amélioré Private Sub Workbook_Open() Gilles |
|
|
Re: Test login et traitement | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 18-01-2010 18h07
C'est une très bonne réponse mais je n'en doutais pas vu le contenu du forum
j'ai donc adapté à mon besoin ce qui au final donne ceci sur l'écriture dans le xls If Prenom <> "" Then With Sheets(1) .Cells(11, 2).Value = Prenom & " " & Nom .Cells(12, 2).Value = "Tél : " & Tel .Cells(13, 2).Value = "Fax : " & Fax .Cells(8, 9).Value = Initiales mais sur cette dernière ligne (soit en I8) mon besoin est plus compliqué et l'on retrouve en partie le post http://www.mdf-xlpages.com/modules/ne ... c_id=502&post_id=3108 dans lequel je décrivais le souhait d'aller inscrire à cet emplacement un numéro trouvé dans le fichier V:\COTATIONS\COTATIONS 2010.xls au format AAAA-NNNN ou AAAA est en général l'année en cours et AAAA un numéro incrémentiel de 1 en 1 exemple partons d'un fichier vide je voudrais en cliquant sur le xlt que mon fichier inscrive dans le fichier cotation ces informations ( | représentant un changement de colonne) 2010-0001 | valeur de A8 de l'onglet Offre | Valeur de L16 | Valeur de K11 | Initiales et enregistre mon fichier ainsi 2010-0001C si l'on continue l'exemple j'espère ne pas trop demandé et être à peu près clair Gilles |
|
|
Test login et traitement | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 18-01-2010 09h12
Bonjour,
J'ai mis en place dans mon classeur le module suivant qui récupère le login du PC Function login() As String login = Application.UserName End Function je voudrais définir en fonction de ce login 4 cas en fonction de 4 utilisateurs une série de 6 données fixes afin de les afficher sur l'onglet du classeur automatiquement voici les données (4 possibilités pour chaque) Prénom NOM Téléphone Fax Initiales J'ai essayé d'utiliser la méthode case au lieu de else if mais je n'y arrive pas merci de votre aide Gilles |
|
|
Re: Aide mise en place base client classeur B par combo classeur A | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 15-01-2010 14h48
Voici en théorie le fichier XLT débarassé des information confidentielle
1) en double cliquant je voudrais mettre la date du jour aujourdhui() mais à la réouverture du document ensuite que cette valeur soit figée au jour de création du document aussi une incrémentation au double clic sur ce xlt mis en réseau entre 4 personnes par rapport à un fichier suivi évoqué plus bas la première colonne du suivi.xls pouvant être ce numéro au format AAAA-xxxxC/yy ou xxxx est justement le numéro incrémentatiel et yy des initiales récupérées en colonne H de l'onglet login par correspondance du login du PC récupéré en feuille Acquisition cellule A2 ce numéro AAAA-xxxxC étant aussi la base du nom du fichier au final AAAA-xxxxC.xls stocker sur un disque réseau d'où à mon avis un enregistrement automatique du fichier dès le fichage de la date et du numéro avec archivage dans le fichier suivi pour réservation du n° 2) pour personnaliser l'offre je souhaiterais une ouverture automatique d'un combobox pour choisir un client dans une liste stockée dans un autre fichier ou alors crée un nouveau client dans ce fichier les champs du combo seraient Prénom NOM Téléphone Portable Fax Société une fois le choix ou la création via le combo : insertion des donnée dans le fichier crée à l'ouverture du xlt en cellules K11 = concaténer(Prénom;" ";NOM) L12 = concaténer(Téléphone;"/";Portable) L13 = Fax K14 = Mail M16= Société Le but de tout ça étant d'avoir un fichier de client partager entre quatre collaborateurs en réseau et de partager des données communes 3) à la fin de la rédaction de l'offre j'aurais besoin d'aller exporter des données vers un fichier suivi.xls par exemple reprennant certains champs pour faire un suivi d'offre et un archivage On verra si avec ça c'est mieux et si il reste des petites choses à améliorer ce sera pour plus tard Merci d'avance |
|
|
Aide mise en place base client classeur B par combo classeur A | ||
---|---|---|
Inscription: 14/01/2010
Messages:
10
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 14-01-2010 14h13
Bonjour,
Tout nouveau sur le forum je cherchais de l'aide pour me permettre de mettre en place un combobox à l'ouverture du classeur modèle (xlt) pour choix d'un client ou création d'un client et archivage dans un fichier Excel (base de client) pouvant être interrogé par la combo du modèle (4 utilisateurs potentiels en même temps) les champs du combo seraient Prénom NOM Téléphone Portable Fax Société une fois le choix effectuer via le combo ou la création copie des données dans le fichier crée par le XLT dans des cellules K11 = Prénom;" ";NOM L12 = Téléphone;"/";Portable L13 = Fax K14 = Mail M16= Société si quelqu'un est motivé pour m'aider dans ce petit projet j'en serais ravi par ailleurs d'autres besoin arriveront ensuite si la ou les personnes sont motivées pour m'accompagner dans ce dévellopement ce serait super D'avance merci Gilles
Edité par vg00 le 14/01/2010 15:31:10
|
|
|