FORMULAIRE MACRO VBA / Modification et Ajout Photo

GRAR

XLDnaute Nouveau
Bonjour à tous !

Je suis en plein création d'un formulaire afin d'avoir une base de donnée sur des réclamations.

Voici ce que j'ai pu faire pour l'instant.

Mon problème :

J'aimerai modifier la base de donnée via le formulaire ...
mais la notion de MODIFICATION me pose beaucoup de problème !

Mon fichier fonctionne ainsi :
Bouton pour ouvrir le fichier, on saisie les différentes infos, et tous se renseigne dans une BD excel.
jusque là, c'est ok !

Sauf que le fournisseur nous transmet une réponse suite à cette réclamation, et j'aimerai ouvrir ce formulaire et pouvoir modifier la réclamation concerné.
C'est pourquoi, j'ai fais un bouton de recherche de réclamation afin de retrouver la bonne réclamation, mais après je bloque... comment retrouver toutes les informations pour qu'elle s'intègre à nouveau dans mon formulaire ...?

J'ai un second problème mais qui viendra après... c'est l'ajout de photo via des boutons parcourir... mais on en reparlera après résolution de celui ci.


Merci de votre aide !!!!
 

Fichiers joints

jp14

XLDnaute Barbatruc
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

Bonjour

Ci dessous le fichier modifié ( si j'ai bien colmpris le problème)

PS j'ai rajouté des tests car j'avais des problèmes avec le double 0 cette ecriture n'était pas reconnue.

A tester et à terminer

JP
 

Fichiers joints

Dernière édition:

GRAR

XLDnaute Nouveau
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

Bonjour JP,

Merci de t'être penché sur mon problème.

Si je comprend bien ta démarche :
- lorsque tu clic sur le bouton recherche
- tu renseigne le numéro de réclamation
- cela t'affiche tous les numéros correspondant
- et cela t'indique le numéro de ligne de ta BD afin de l'identifier

du coup le but est de retourner sur la BD pour modifier manuelle dans le tableau ?

Si c'est bien ça, ce n'est pas ce que je voudrais.

Le but de ma demande, est de :
- pouvoir rechercher un numéro de réclamation (donc reprendre les données du tableau excel)
- de sélectionné la bonne ligne (double clic ou autre)
- ensuite que toutes les données se remettent dans les text et combobox
- modifier les champs
- valider les modifications ainsi la BD se remet à jour

Faire une recherche dynamique d'un n°reclamation pour que toutes les infos s'affiche automatiquement mais de manière instantané.

Pour cela j'ai essayé ce code :
Code:
 Private Sub Cbx_recherche_reclam_Change()
Dim no_ligne As Integer
With Sheets("BD_RECLAMATION")

no_ligne = Cbx_recherche_reclam.ListIndex + 2
    DTPicker1 = [D2]
    DTPicker2 = [E2]
    TextBox1 = Cells(LigneVide, 3).Value
    TextBox2 = Cells(LigneVide, 8).Value
    TextBox3 = Cells(LigneVide, 9).Value
    TextBox4 = Cells(LigneVide, 10).Value
    TextBox5 = Cells(LigneVide, 11).Value
    Cbx_motifs = Cells(LigneVide, 12).Value
    Cbx_decisions = Cells(LigneVide, 13).Value
    TextBox6 = Cells(LigneVide, 14).Value
    Cbx_emetteur = Cells(LigneVide, 15).Value
    TextBox7 = Cells(LigneVide, 16).Value
    TextBox8 = Cells(LigneVide, 18).Value
    DTPicker3 = [Q2]
    Cbx_trsp = Cells(LigneVide, 7).Value
    Cbx_frs = Cells(LigneVide, 6).Value
End With
End Sub
Ça fonctionne à moitié ...

Merci

GRAR
 

jp14

XLDnaute Barbatruc
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

Bonjour

Le but de ma demande, est de :
- pouvoir rechercher un numéro de réclamation (donc reprendre les données du tableau excel)

Sans modifier le code initial, la recherche de la ligne se fait par le nom de l'émetteur, ou du transporteur, ou du fournisseur (ou exclusif).
Si les 3 zones sont vides la procédure affiche le numéro de réclamation. On peut aussi afficher dans la listbox l'ensemble des données (code à modifier)

- de sélectionné la bonne ligne (double clic ou autre)
La ligne sélectionné se trouve dans une variable publique pour être transmise à l'userform appellant
- ensuite que toutes les données se remettent dans les text et combobox
Si le numéro de ligne existe les zones sont remplies.
Pour simplifier l'écriture du code j'ai renommé les contrôles en utilisant le numéro de colonne
Par exemple TextBox06 la valeur se trouve dans la colonne 6
Code:
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))' récupération du numéro de la colonne
           .Cells(LigS, Coln) = Me.Controls(Ctrl.Name).Value ' écriture dans la cellule
- modifier les champs
Il reste à faire la validation des données
- valider les modifications ainsi la BD se remet à jour

A tester et à compléter

Bonne journée
JP
 

Fichiers joints

Dernière édition:

GRAR

XLDnaute Nouveau
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

J'ai eu du mal à adapté à mon tableau mais je pense avoir plus ou moins réussi ...
J'ai fais quelque test et cela semble fonctionné donc UN GRAND MERCI pour cette première demande.

Ma seconde demande concerne, l'insertion de photo.
Dans ma multipage j'ai mis une page "photo", je voulais savoir si c'est possible d'intégrer des photos via ce formulaire, j'ai trouver ce code qui permet de parcourir des fichiers dans le disque dur :

Code:
Private Sub CommandButton2_Click()
  Image = Application.GetOpenFilename("Fichiers Png ou Gif ou Jpg ,*.gif;*.jpg;*.png")
  If Image <> False Then
    a = Split(Image, "\")
    nomimage = a(UBound(a))
    Set c = ActiveCell
    With ActiveSheet
      .Pictures.Insert(Image).Name = nomimage
      .Shapes(nomimage).Height = c.Height
      .Shapes(nomimage).Left = c.Left + (c.Width - .Shapes(nomimage).Width) / 2
      .Shapes(nomimage).Top = c.Top
      .Shapes(nomimage).LockAspectRatio = msoTrue
    End With
  End If
End Sub
Donc pour l'instant, la photo s'insère dans une cellule sélectionné au préalable (mais ce n'est pas ce qui m'intéresse) avec un format de photo vraiment tout petit mais c'est pas grave ça.

J'aimerai avoir une idée de comment je pourrai faire pour insérer des photos.

Merci de votre aide.

GRAR
 

Fichiers joints

GRAR

XLDnaute Nouveau
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

Bonjour,

désolé de pas avoir répondu avant ! Pour les photos cela fonctionne merci !

Je reviens juste sur la partie modification, lorsque je clic sur la ligne correspondant, les textbox et combobox reprennent bien les infos de ma base de données, mais pas les DTPICKER :

Code:
Private Sub CommandButton6_Click() 'bouton recherche
Dim Ctrl As Control, Coln As Integer
With Sheets("BD_RECLAMATION")
ColPub = 0
DataPub = ""
If Me.ComboBox06.ListIndex > -1 Then
    DataPub = Me.ComboBox06
    ColPub = 6
End If
If Me.ComboBox07.ListIndex > -1 Then
    DataPub = Me.ComboBox07
    ColPub = 7
End If
If Me.ComboBox15.ListIndex > -1 Then
    DataPub = Me.ComboBox15
    ColPub = 15
End If
formulaire_rech.Show

If LigS = 0 Then Exit Sub
For Each Ctrl In Me.Controls
    Select Case TypeName(Ctrl)
        Case "TextBox"
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))
            Me.Controls(Ctrl.Name).Value = .Cells(LigS, Coln)
        Case "ComboBox"
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))
            Me.Controls(Ctrl.Name).Value = .Cells(LigS, Coln)
        Case "DTPicker"
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))
            Me.Controls(Ctrl.Name).Value = .Cells(LigS, Coln)
    End Select
    
Next Ctrl
End With
End Sub

'---------------------------------------------------
' Utilisation     :enregistrer les modifications
'--------------------------------------------------
Private Sub CommandButton7_Click() 'bouton enregistrer
Dim Ctrl As Control, Coln As Integer

 
With Sheets("BD_RECLAMATION")
If LigS = 0 Then Exit Sub
For Each Ctrl In Me.Controls
    Select Case TypeName(Ctrl)
        Case "TextBox"
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))
           .Cells(LigS, Coln) = Me.Controls(Ctrl.Name).Value
        Case "ComboBox"
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))
           .Cells(LigS, Coln) = Me.Controls(Ctrl.Name).Value
        Case "DTPicker"
            Coln = Val(Replace(Ctrl.Name, TypeName(Ctrl), ""))
           .Cells(LigS, Coln) = Me.Controls(Ctrl.Name).Value
            
    End Select
    
    
Next Ctrl
End With

Unload formulaire_pF
formulaire_pF.Hide
End Sub
Je ne comprend pas pourquoi les DTPicker reprennent pas les celulles de la base... :/

Merci par avance !

GRAR
 

jp14

XLDnaute Barbatruc
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

Bonjour

N'ayant pas résolu l'affichage de la date dans DTPicker17 j'ai contourné le problème en utilisant Monthview.
Pour afficher le calendrier il faut cliquer sur le texte bleu souligné.

A tester

JP
 

Fichiers joints

Dernière édition:

GRAR

XLDnaute Nouveau
Re : FORMULAIRE MACRO VBA / Modification et Ajout Photo

Bonjour JP !

Merci pour ta solution intermédiaire qui marche malgré tout !

Les deux autres DTPICKER ne fonctionnais pas non plus (en mode modification) du coup, j'ai trouver une autre alternative :
C'est d'avoir toujours les DTPCIKER et un textbox a coté.
ce qui fait que lorsque un DTPICKER sélectionne une date, cette même date s'affiche dans un textbox qui n'est pas modifiable (on peut considéré cela comme une confirmation de notre date choisi)

C'est une solution comme une autre mais facile à mon niveau mais au final qui ressemble à la tienne !

Merci beaucoup pour le temps consacré ! C'est impeccable pour moi !

Bonne journée !

GRAR
 

Discussions similaires


Haut Bas