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 :

Modifier une base de donnee a partir d un userform


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut Modifier une base de donnee a partir d un userform
    Bonjour a tous,

    Je debute dans le vba, alors voila, j ai une petite question

    Dans un userform, je saisie le code client , bouton rechercher, ca me remonte mes infos (ca je sais faire) et apres, je modifie l adresse par exemple , bouton modifier et je vpoudrai que ca modifie dans ma feuille excel. j ai essaye plusieurs choses mais impossible, ca marche pas. si quelqu un pouvait m aider ...

    Ca serai tres chouette

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    poste nous ton code, ce sera plus facile de te répondre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("FEUILLE").Range("CASE") = "xxxxxx"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    Voila mon code ...


    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
    Private Sub BTN_Modifier_Click()
    Dim j As Integer
    Dim index As Integer
     
    With Worksheets("Donnees")
        index = .Range("i1")
        For j = index To 2
     
            If .Cells(j, 1) = CS_CodeClient Then
            .Cells(j, 2) = CS_RaisonSociale
            .Cells(j, 3) = CS_Ad1
            .Cells(j, 4) = CS_Ad2
            .Cells(j, 5) = CS_Ad3
            .Cells(j, 6) = CS_CP
            .Cells(j, 7) = CS_Ville
            Exit For
        End If
    Next j
     
    End With
     
    End Sub

  4. #4
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonsoir,
    as-tu essayé la fonction "Replace" .

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    ca marche comment cette fonction, tu peux m expliquer ?

  6. #6
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    L'aide en ligne et tu sauras tout sur cette fonction

    exemple tiré de l'aide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Cet exemple montre comment remplacer chaque occurrence de la fonction trigonométrique SIN par la fonction COS. La plage de remplacement est la colonne A de la feuille Sheet1.
     
    Worksheets("Sheet1").Columns("A").Replace _
        What:="SIN", Replacement:="COS", _
        SearchOrder:=xlByColumns, MatchCase:=True

  7. #7
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Dis moi tes infos tu les fais remonter où? dans des textbox d'un UserForm?
    parce que si c'est le cas j'ai une autre solution pour toi.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    En faite, j ai un formulaire, je saisis un code client puis rechercher, les infos de la feuille excel s affichent dans le formulaire (jusque la pas de pb) ensuite, je modifie l'adresse par ex dans le formulaire en appuyant sur le bouton modifier ca doit modifier la feuille Excel . ca doit surement tres facil, mais j y arrive pas

  9. #9
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour, met une copie de ton fichier ici : www.cjoint.com ça sera plus facile pour apporter une solution adéquate

    Dans le code du bouton "Modifier" tu devrais avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    Sheets(1).Cells(1, 1) = UserForm1.TextBox1.Value 'ou Me.TextBox1.Value
    'etc...pour les autres TextBox
    End Sub
    @+

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    c'est bon, j'avais oublie de mettre .value ... OUPS

    Merci bcp

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    Nooooooon, ca marche pas ... Je comprend pas !! C'est simple pourtant. S'il vous plait, aidez moi je ne sais plus quoi faire

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    je remet mon code ... si quelqu un veut bien m'aider, je pense que ca doit etre tout bete ... mais rien a faire, je trouve pas ou le pb

    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
    Private Sub BTN_Modifier_Click()
    Dim j As Integer 'compteur
    Dim index As Integer 'nombre de ligne
     
    'remplace les donnees de la feuille excel par les donnees des zones de saisie
    With Worksheets("Donnees")
        index = .Range("i1")
        For j = index To 2
     
            If .Cells(j, 1) = CS_CodeClient.Value Then
            .Cells(j, 2) = CS_RaisonSociale.Value
            .Cells(j, 3) = CS_Ad1.Value
            .Cells(j, 4) = CS_Ad2.Value
            .Cells(j, 5) = CS_Ad3.Value
            .Cells(j, 6) = CS_CP.Value
            .Cells(j, 7) = CS_Ville.Value
            Exit For
        End If
    Next j
     
    End With
     
    End Sub

  13. #13
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    C'est difficile de répondre comme ça sans avoir un exemple concret mais à 1ère vue les CS... sont les noms de tes TextBox.

    Si c'est le cas, il faut juste précise où tu vas les chercher, exemple :

    If .Cells(j, 1) = UserForm1.CS_CodeClient.Value Then
    .Cells(j, 2) = UserForm1.CS_RaisonSociale.Value

    Pour avoir un peu d'expérience sur d'autres forums, le plus simple est de mettre une copie de son fichier en pièce jointe, comme ça on tourne pas autour du pot avant de trouver la solution adéquate

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour Cchassan,

    Fring a répondu :

    Si c'est le cas, il faut juste précise où tu vas les chercher, exemple :

    If .Cells(j, 1) = UserForm1.CS_CodeClient.Value Then
    .Cells(j, 2) = UserForm1.CS_RaisonSociale.Value
    Il peut avoir raison si vous affectez le contenu des Textbox ou autre Combobox dans une procédure contenue dans un module, mais à partir du moment où l'affectation se fait par le code contenu dans votre Userform , ce qui semble bien le cas puisque votre procédure est : Private Sub BTN_Modifier_Click(), ce n'est pas nécessaire.

    Par contre avez-vous essayé de lancer la procédure après avoir mis un point d'arrêt devant la ligne :

    puis en pas-à-pas (touche F8) de vérifier si après la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(j, 1) = CS_CodeClient.Value Then
    le passage à l'instruction suivante est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Cells(j, 2) = CS_RaisonSociale.Value
    ou
    End If
    si c'est le 2ème cas au 1er et 2ème passage, l'égalité n'est pas reconnue.

    En passant le curseur sur la ligne de code vérifiez le contenu de Cells(j, 1) et de CS_Codeclient

Discussions similaires

  1. [Débutant] comparer deux chaines de caractere a partir d'une base de donnees
    Par jeune informatique dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/05/2010, 15h53
  2. [XL-2003] modifier une base de donnee Par USF
    Par creolia dans le forum Excel
    Réponses: 2
    Dernier message: 26/02/2010, 14h01
  3. Réponses: 2
    Dernier message: 02/12/2009, 23h02
  4. Réponses: 5
    Dernier message: 08/01/2009, 16h05
  5. Comment fournir une base de donnees non modifiable
    Par nadia123456 dans le forum Sécurité
    Réponses: 2
    Dernier message: 29/09/2008, 20h24

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