Rapport de message :*
 

Re: Test login et traitement

Titre du sujet : Re: Test login et traitement
par myDearFriend! le 18/01/2010 22:34:44

Re,

Si j'ai bien compris la demande, tu peux remplacer le module de code par celui-ci :
Option Explicit

Private Function login() As String
    login = Application.UserName
End Function

Sub InitOffre()
'myDearFriend! - www.mdf-xlpages.com
Dim Chemin As Variant
Dim Prenom As String, Nom As String, Tel As String, Fax As String
Dim Mail As String, Initiales As String, Ref As String
Dim N As Integer
   
    Select Case login
    Case "Jean.Dupont"
        Prenom = "Jean"
        Nom = "Dupont"
        Tel = "0000000001"
        Fax = "0000000002"
        Mail = "jean.dupont@exemple.com"
        Initiales = "JD"
    Case "Guy.Martin"
        Prenom = "Guy"
        Nom = "Martin"
        Tel = "1111111111"
        Fax = "1111111112"
        Mail = "guy.martin@exemple.com"
        Initiales = "GM"
    Case "Corinne.Jules"
        Prenom = "Corinne"
        Nom = "Jules"
        Tel = "2222222221"
        Fax = "2222222222"
        Mail = "corinne.jules@exemple.com"
        Initiales = "CJ"
    Case "Claire.Chazal"
        Prenom = "Claire"
        Nom = "Chazal"
        Tel = "3333333331"
        Fax = "3333333332"
        Mail = "claire.chazal@exemple.com"
        Initiales = "CC"
    Case Else
        MsgBox "Login non répertorié"
    End Select

    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
            'Détermine la réf de l'offre et met à jour les Cotations
            Ref = Cotations(.Cells(8, 1).Value, .Cells(16, 12).Value, _
                            .Cells(11, 11).Value, Initiales) & "C"
            .Cells(8, 9).Value = Ref & "/" & Initiales
        End With
        'Sauvegarde l'offre
        Chemin = Application.GetSaveAsFilename(Ref, "Offres (*.xls), *.xls", _
                                                , "Sauvegarde de l'offre...")
        If Chemin <> False Then
            ThisWorkbook.SaveAs Chemin
        End If
    End If
End Sub

Private Function Cotations(D As Date, Ste As String, Dest As String, _
                            Init As String) As String
'myDearFriend! - www.mdf-xlpages.com
Dim Ref As String
Dim L As Long
Dim N As Integer
Const Chemin As String = "V:\COTATIONS\COTATIONS 2010.xls"

    Application.ScreenUpdating = False
    With Workbooks.Open(Chemin)
        With .Sheets(1)
            'Num dernière ligne utilisée
            L = .Cells(.Rows.Count, 1).End(xlUp).Row
            'Détermine nouvelle référence cotation
            N = Val(Replace(.Cells(L, 1).Value, "2010-", "")) + 1
            Ref = "2010-" & Format(N, "0000")
            'Ajoute nouvelle ligne dans Cotations
            .Cells(L + 1, 1).Value = Ref
            .Cells(L + 1, 2).Value = D
            .Cells(L + 1, 3).Value = Ste
            .Cells(L + 1, 4).Value = Dest
            .Cells(L + 1, 5).Value = Init
        End With
        'Sauve et ferme le fichier Cotations
        .Close True
    End With
    Cotations = Ref
    Application.ScreenUpdating = True
End Function
... je suis parti de l'hypothèse où les enregistrements dans COTATIONS 2010.xls se font dans le premier onglet de ce classeur.

Attention, je n'ai mis aucun contrôle d'erreur dans ce code (cellules vides, Date en A8 mal saisie, etc....). A toi de gérer ces erreurs ou omissions éventuelles de l'utilisateur.

Cordialement,

Nb: merci d'utiliser la balise de Code pour insérer du Code VBA (ou même une formule) dans tes posts du forum.
Pour rappel :