Forums XLPages

Tous les messages (vg00)

Re: Test login et traitement
#1
Débutant XLPages

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
Hors Ligne
Rapport   Haut 

recherchev + nom fichier dans cellule
#2
Débutant XLPages

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

Hors Ligne
Rapport   Haut 

PB Nombre de pages document avec mise à jour auto
#3
Débutant XLPages

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 ...
Je veux afficher dans la célulle B8 de l'onglet Offre
Nombre total de pages incluant cette page :4 par exemple
j'ai mis en place ce code


Insérer avec l'éditeur VBA dans le dossier de la feuille la macro :

Private Sub Worksheet_Change(ByVal Target As Range)
    '
    'Actions de la Macro pour toute modif de valeur de la feuille
    '
Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")+1
comment écrire en B8 je ne sais pas ...
End Sub

 

malheureusement en poussant un peux le code mis en place bloque excel et je n'ai plus la main

Typiquement mon modèle s'ouvre avec tous les produits possible donc peut présenter 4 pages mais en supprimant des lignes mon document diminue et je voudrais que ma cellule B8 se mette à jour et je n'y arrive pas

Merci d'avance

Hors Ligne
Rapport   Haut 

Re: Traitement automatique série de fichier
#4
Débutant XLPages

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()
Range("A1").Select 'sélectionner la cellule de début
Chemin = "V:\VME\COTATIONS"
fichier = Dir(Chemin & "*.xls")
Do While fichier <> ""
Workbooks.Open Filename:=Chemin & fichier
Set feuille = ActiveWorkbook.Sheets("Feuil1")

ThisWorkbook.Activate
ActiveCell.Value = feuille.Range("K8").Value
ActiveCell.Offset(0, 1).Value = feuille.Range("L11").Value
ActiveCell.Offset(0, 2).Value = feuille.Range("M12").Value
ActiveCell.Offset(0, 3).Value = feuille.Range("M13").Value
ActiveCell.Offset(0, 4).Value = feuille.Range("K16").Value
ActiveCell.Offset(0, 5).Value = feuille.Range("N16").Value

Windows(fichier).Close savechanges:=False
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
fichier = Dir ' Fichier suivant
Loop
End Sub
Hors Ligne
Rapport   Haut 

Traitement automatique série de fichier
#5
Débutant XLPages

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
Hors Ligne
Rapport   Haut 

Re: Test login et traitement
#6
Débutant XLPages

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()
' DateduJour Macro '
Sheets("Offre").Select
Range("A8").Select
ActiveCell.FormulaR1C1 = "=today()"
Range("A8").Value = Range("A8").Value
End Sub

Gilles
Hors Ligne
Rapport   Haut 

Re: Test login et traitement
#7
Débutant XLPages

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
Hors Ligne
Rapport   Haut 

Test login et traitement
#8
Débutant XLPages

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
Mail
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
Hors Ligne
Rapport   Haut 

Re: Aide mise en place base client classeur B par combo classeur A
#9
Débutant XLPages

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
Mail
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






Pièce jointe:
zip Exemple.zip   [ Taille: 14.73 Ko - Téléchargements: 420 ]
Hors Ligne
Rapport   Haut 

Aide mise en place base client classeur B par combo classeur A
#10
Débutant XLPages

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
Mail
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
Hors Ligne
Rapport   Haut