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 :

VBA - Modifier une image à partir d'un Userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Secrétaire
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Par défaut VBA - Modifier une image à partir d'un Userform
    Bonjour,

    J'avance doucement mais surement dans le VBA. Je suis débutante et j'ai réussi à ajouter des données par Userform donc jusque là tout va bien. Maintenant Je cherche à faire un Userform ou je pourrais modifier une image à partir d'un Userform toujours Voilà le formulaire en question :

    Nom : 2014-09-05_000001.png
Affichages : 2034
Taille : 10,5 Ko

    Et voici que j'ai saisi jusqu'à présent.

    Code vb : 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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
     
    Option Explicit
     
     
    Private Sub ComboBoxLine_Change()
            Dim Plage As Range
        Dim Tbl
        Dim i As Integer
        Dim tailleTableau As Integer
        Dim ligne_a_editer As Integer
     
     
        'crée un tableau contenant les noms des contrôles où récuperer les valeurs
        Tbl = Array("ComboBoxNom", "TextBoxNum", "TextBoxPage", "TextBoxDateS", "ComboBoxParu", "ComboBoxType", "TextBoxDAch", "TextBoxCodeBarre", "TextBoxCb")
     
        ' On recupere la taille du tableau
        tailleTableau = UBound(Tbl) + 1
     
     
        'défini la plage en feuille "BDD" adapter le nom...
        With Worksheets("BDD")
            'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
            Set Plage = .Range("A2", .Cells(.Rows.Count, tailleTableau).End(xlUp))
     
        End With
     
     
        'décale d'une ligne
        ligne_a_editer = CInt(ComboBoxLine.Value) - 1
     
     
        With Plage.Rows(ligne_a_editer)
     
            'boucle pour inscription des valeurs
            For i = 1 To tailleTableau
     
                Me.Controls(Tbl(i - 1)).Text = .Cells(1, i + 1).Value
     
     
            Next i
     
    '      MODIFIER IMAGE ?????
     
        End With
     
    End Sub
     
    Private Sub CommandButton2_Click()
     
       blnCancel = True
       Me.Hide
     
    End Sub
     
     
    Private Sub CommandUpdateButton_Click()
            Dim Plage As Range
        Dim Tbl
        Dim Img
        Dim i As Integer
        Dim tailleTableau As Integer
        Dim ligne_a_editer As Integer
     
     
        'crée un tableau contenant les noms des contrôles où récuperer les valeurs
        Tbl = Array("ComboBoxNom", "TextBoxNum", "TextBoxPage", "TextBoxDateS", "ComboBoxParu", "ComboBoxType", "TextBoxDAch", "TextBoxCodeBarre", "TextBoxCb")
     
        ' On recupere la taille du tableau
        tailleTableau = UBound(Tbl) + 1
     
     
        'défini la plage en feuille "BDD" adapter le nom...
        With Worksheets("BDD")
            'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
            Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, tailleTableau).End(xlUp))
     
        End With
     
        ' On recupere le numero de la ligne de ComboBoxLine
        ligne_a_editer = CInt(ComboBoxLine.Value) - 1
     
     
        With Plage.Rows(ligne_a_editer)
     
            'boucle pour inscription des valeurs
            For i = 1 To tailleTableau
     
                .Cells(1, i + 1).Value = Me.Controls(Tbl(i - 1)).Text
     
     
            Next i
     
     
       blnCancel = False
       Me.Hide
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
        Dim nombre_de_ligne As Integer
     
        Dim Tbl
        Dim Plage As Range
        Dim tailleTableau As Integer
        Dim i As Integer
     
     
        'crée un tableau contenant les noms des contrôles où récuperer les valeurs
        Tbl = Array("ComboBoxNom", "TextBoxNum", "TextBoxPage", "TextBoxDateS", "ComboBoxParu", "ComboBoxType", "TextBoxDAch", "TextBoxCodeBarre", "TextBoxCb")
     
        ' On recupere la taille du tableau
        tailleTableau = UBound(Tbl) + 1
     
     
        'défini la plage en feuille "BDD"
        With Worksheets("BDD")
            'plage de A2 à Mx. Les cellules de la colonne M sont sensées être toutes renseignées
            Set Plage = .Range("A2", .Cells(.Rows.Count, tailleTableau).End(xlUp))
        End With
     
     
        nombre_de_ligne = Plage.Rows.Count
        'MsgBox nombre_de_ligne
     
     
        With ComboBoxLine
     
            For i = 2 To nombre_de_ligne
                .AddItem (i + 1)
            Next
            .ListIndex = 0
     
        End With
     
     
     'Nom
     ComboBoxNom.RowSource = "INDEX!A2:A156"
     
     End Sub
     
     
    Sub DoStuff()
    UserFormEditElement.Show
    If UserFormEditElement.blnCancel Then
       ' cancel button was pressed
    Else
       ' OK button was pressed
    End If
    Unload UserFormEditElement
    End Sub
     
    Private Sub UserForm_Click()
     
    End Sub


    Ma question est comment je peux faire pour modifier l'image en cliquant sur "Modifier l'image", et supprimer l'ancienne.

    Je vous remercie par avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Picture = LoadPicture("Chemin et nom de l'image")

Discussions similaires

  1. [XL-2010] VBA afficher une image (variable) sur Userform avec hyperlien
    Par kevina82 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2015, 20h55
  2. Réponses: 1
    Dernier message: 17/08/2011, 19h36
  3. Modifier une image par pixels
    Par mateo.14 dans le forum MFC
    Réponses: 10
    Dernier message: 21/01/2005, 15h09
  4. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 10h55
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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