IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Remplir USF si fiche deja existante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut Remplir USF si fiche deja existante
    Bonsoir,

    Avec mon appli intervention et quand je créée une nouvelle fiche, je souhaite que lorsque je choisie un client
    - si existant alors le reste des informations (Raison sociale, kilomètre, ville et Filleul) se remplissent toutes seules provenant de la feuille Clients
    - sinon, il ouvre USF Client et là on crée un nouveau client qui alimentera la feuille associée.

    J'ai déjà une partie de faite USF intervention et Clients aperçu en pièces jointes.

    Le code du USF intervention

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Private Sub Nouveau_Click()
     
    TextBoxDate = Date
    End Sub
     
    Private Sub Annuler_Click()
    Unload Me
    End Sub
     
    Private Sub OK_Click()
     
    With Sheets("Clients")
        .Range("A" & Lig).Value = Val(.Range("A" & Lig - 1).Value) + 1
        .Range("B" & Lig).Value = Application.Proper(Me.Nom)
        .Range("C" & Lig).Value = Application.Proper(Me.Raison_sociale)
        .Range("D" & Lig).Value = Application.Proper(Me.Adresse)
        .Range("E" & Lig).Value = Application.Proper(Me.Adresse2)
        .Range("F" & Lig).Value = Application.Proper(Me.Ville)
    '   .Range("G" & Lig).Value = Me.CP
        With .Range("H" & Lig)
            .Value = Val(Me.Kilometre.Value)
            .NumberFormat = "0.00"
            .HorizontalAlignment = xlCenter
        End With
        With .Range("I" & Lig)
            .Value = Me.TextBoxDate
            .NumberFormat = "dd/mm/yyyy"
            .HorizontalAlignment = xlCenter
        End With
        With .Range("J" & Lig)
            .Value = val(Me.Annee)
            .NumberFormat = "yyyy"
            .HorizontalAlignment = xlCenter
        End With
        .Rows(Lig).Interior.ColorIndex = xlNone
     
    End With
     
    Call Reinit
    Unload Me
    End Sub
     
    Private Sub Reinit()
    'Vidage des controles de l'usf
    Me.Nom = ""
    Me.Raison_sociale = ""
    Me.Adresse = ""
    Me.Adresse2 = ""
    Me.Ville = ""
    'Me.CP = ""
    Me.Kilometre = ""
    Me.TextBoxDate = ""
    Me.annee=""
     
    End Sub
     
    Private Sub Ajouter_client_Initialize()
     
    TextBoxDate = Date
     
    With Sheets("Client")
        If Lig = 0 Then
            Me.OK.Caption = "Ajouter"
            Lig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
            Me.Numero = Val(.Range("A" & Lig - 1)) + 1
        Else
            Me.CmdOKCaption = "Modifier"
            Me.Numero = .Range("A" & Lig)
            Me.Nom = .Range("B" & Lig)
            Me.Raison_sociale = .Range("C" & Lig)
            Me.Adresse = .Range("D" & Lig)
            Me.Adresse2 = .Range("E" & Lig)
            Me.Ville = .Range("F" & Lig)
    '       Me.CP = .Range("G" & lig)
            Me.Kilometre = .Range("H" & Lig)
            Me.TextBoxDate = .Range("I" & Lig)
            Me.Annee=.range("J" & Lig)
     
        End If
    End With
    End Sub
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     
    If Lig > 0 Then
        Sheets("Clients").Range("A" & Lig & ":J" & Lig).Borders.LineStyle = xlNone
    Lig = 0
    End If
    End Sub
    Quelqu'un a-til une idée ?

    Merci

    Stéphanie

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    La clé de ton problème est la Méthode Find de l'objet Range.

    Un petit F1 sur ce mot et/ou une recherche sur ce forum devrait te donner plein d'exemples...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Re Bonjour,

    J'ai essaye de faire une recherche avec le mot find, ça affiche des problemes ou solutions qui n'ont rien avoir. J'ai donc fait une recherche avancée, pareil avec Find objet range.

    Y-a-t-il une solution concrete à mon probleme ?

    Merci

    Stephanie

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Tu peux aussi utiliser la fonction VLOOKUP en VBA et si erreur alors tu débranches vers la création du client


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.worksheetfunction.vlookup(.....)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Bonsoir,

    Je me réponds à moi-meme, j'y suis presque mais...

    Voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub ComboBox_nom_Change()
    'Des que je fais tabulation et que je passe au prochain champ
    With ThisWorkbook.Sheets("Clients")
    Dim recherche As Range
     
    Set recherche = Cells.Find(What:="recherche", After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
    On Error Resume Next
    'Va chercher les infos dans feuil Clients
    Raison_sociale.Text = recherche.Offset(0, 3) 'rempli une TexBox
    Ville.Text = recherche.Offset(0, 6) 'rempli une ComboBox
    Kilometre.Text = recherche.Offset(0, 8) 'rempli une TexBox
    Connaissance.Text = recherche.Offset(0, 9) 'rempli une ComboBox
    Fileul.Text = recherche.Offset(0, 10) 'rempli une ComboBox
     End With
    On Error GoTo 0
    End Sub
    Comment faire pour que ça fonctionne ?

    Je pense qu'il ne vas pas chercher les infos ou est ce que je veux entre autres feuil Clients

    Quelqu'un aurait-il une idée ? Merci

    Stéphanie

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Par tâtonnement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub ComboBox_nom_Change()
    Dim Recherche As Range
    Dim Str As String
     
    Str = Me.ComboBox_nom
    If Str <> "" Then
        With ThisWorkbook.Sheets("Clients")
            Set Recherche = .Range("B:B").Find(What:=Str, LookIn:=xlValues, LookAt:=xlWhole)
            If Not Recherche Is Nothing Then
                Me.Raison_sociale.Text = Recherche.Offset(0, 3)                                        'rempli une TexBox
     
                Set Recherche = Nothing
            Else
                MsgBox "Client inexistant"
                userformClients.Show 0
            End If
        End With
    End If
    End Sub

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Merci Mercatog, cela fonctionne. Il a fallu que modifie au niveau recherche.Offset car les numéro n'était pas bon et j'ai compris pourquoi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passage de paramètres entre "fenetres" deja existantes
    Par Shadow69 dans le forum Android
    Réponses: 7
    Dernier message: 14/01/2013, 12h06
  2. Sage ERP X3 V5: Compta: Fiche déjà existante
    Par rahfax dans le forum SAGE
    Réponses: 3
    Dernier message: 01/06/2011, 15h59
  3. import sur une base deja existante
    Par crazykangourou dans le forum SQL
    Réponses: 2
    Dernier message: 09/01/2007, 10h14
  4. Réponses: 8
    Dernier message: 21/04/2006, 16h50
  5. Réponses: 1
    Dernier message: 30/03/2006, 07h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo