XL 2013 insertion image dans cellule

  • Initiateur de la discussion Initiateur de la discussion bredeche
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bredeche

XLDnaute Occasionnel
bonjour
j'ai un formulaire qui me permet d'inséré une image dans un onglet qui se crée a l’emplacement H20 et le chemin dans un tableau en aw

pour les éléments qui s 'inscris dans la cellule de l'onglet cela me place que des chiffres je ne comprend pas voici mon code
VB:
Option Explicit


Private Sub CommandButton2_Click() 'Bouton VALIDER
Dim NewLig As Long
Dim laconcat As String


 
 'ELEMENT ENREGISTRE DANS LE TABLEAU PRESENTATION RECAP
  With Sheets("02-Présentation Recap")
    
        NewLig = Application.Max(10, .Range("A" & Rows.Count).End(xlUp).Row + 1)
        .Range("A" & NewLig).Value = Application.WorksheetFunction.Max(Range("A:A")) + 1
      
      laconcat = ComboBox4.Value & " _ " & TextBoxfiche.Text & " _ " & TextBoxannée.Text & " " & ComboBox5.Value
   .Range("B" & NewLig).Value = laconcat
   .Range("C" & NewLig).Value = TextBoxobjet
    .Range("D" & NewLig).Value = ComboBox1
    
     End With
    
    'ELEMENT ENREGISTRE DANS LE TABLEAU  RECAP
    With Sheets("00-Recap")
    
    
        NewLig = Application.Max(10, .Range("A" & Rows.Count).End(xlUp).Row + 1)
        .Range("A" & NewLig).Value = Application.WorksheetFunction.Max(Range("A:A")) + 1
      
        .Range("C" & NewLig).Value = TextBoxobjet
        .Range("Y" & NewLig).Value = ComboBox4
        .Range("Z" & NewLig).Value = TextBoxfiche
        .Range("AA" & NewLig).Value = CDate(TextBoxdate)
        .Range("AB" & NewLig).Value = TextBoximputation
        .Range("AC" & NewLig).Value = TextBoxlocalisation
        .Range("AD" & NewLig).Value = ComboBox1
        .Range("D" & NewLig).Value = ComboBox1
        .Range("AE" & NewLig).Value = TextBoxannée
        .Range("AF" & NewLig).Value = CheckBox1
        .Range("AG" & NewLig).Value = CheckBox2
        .Range("AH" & NewLig).Value = CheckBox3
        .Range("AI" & NewLig).Value = TextBoxconstat
        .Range("AJ" & NewLig).Value = TextBoxrisque
        
        .Range("AK" & NewLig).Value = TextBoxorigine
        .Range("AL" & NewLig).Value = CheckBox4
        .Range("AM" & NewLig).Value = CheckBox5
        .Range("AN" & NewLig).Value = CheckBox6
        
        
        .Range("AO" & NewLig).Value = TextBoxtravaux
        .Range("AP" & NewLig).Value = CheckBox7
        .Range("AQ" & NewLig).Value = CheckBox8
        .Range("AR" & NewLig).Value = CheckBox9
        
        .Range("AS" & NewLig).Value = TextBoxobservation
        
        .Range("AT" & NewLig).Value = TextBoxconstructeur
        .Range("AU" & NewLig).Value = TextBoxdureevie1
        .Range("AV" & NewLig).Value = TextBoxdureevie2
        .Range("AW" & NewLig).Value = CHEMIN
        
   laconcat = ComboBox4.Value & " _ " & TextBoxfiche.Text & " _ " & TextBoxannée.Text & " " & ComboBox5.Value
   .Range("B" & NewLig).Value = laconcat
  
    End With
   Application.ScreenUpdating = False
    'On crée les onglets
        'on copie le modèle en dernier
        Worksheets("03-TRAME").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)
            With ActiveSheet
            .Name = Worksheets("00-RECAP").Range("B" & NewLig)    'je renome
            'Je remplit mon modèle comme je veut...
            .Range("B3") = TextBoxobjet
            .Range("A6") = TextBoxfiche
            .Range("B6") = TextBoxdate
            .Range("C6") = TextBoximputation
            .Range("D6") = TextBoxlocalisation
            .Range("E6") = ComboBox1
            .Range("F6") = TextBoxannée
            .Range("G6") = ComboBox4
            
            .Range("A9") = TextBoxconstat
            .Range("E11") = CheckBox1
            .Range("E12") = CheckBox2
            .Range("E13") = CheckBox3
            
            .Range("A16") = TextBoxrisque
            
            .Range("A21") = TextBoxorigine
            .Range("E23") = CheckBox4
            .Range("E24") = CheckBox5
            .Range("E25") = CheckBox6
            
            
            .Range("A28") = TextBoxtravaux
            .Range("E31") = CheckBox7
            .Range("E32") = CheckBox8
            .Range("E33") = CheckBox9
            
            .Range("A36") = TextBoxobservation
            
            .Range("H15") = TextBoxconstructeur
            
            .Range("K17") = TextBoxdureevie1
            .Range("K18") = TextBoxdureevie2
            
            [h20].Select
    ActiveSheet.Pictures.Insert (Me.Image1.Picture)
          
        End With
            Application.ScreenUpdating = True
    Unload UserForm1
End Sub

 Private Sub Textboxdate_Change()
'Code permettant de mettre une date au format 00/00/0000 dans une textbox
Dim valeur As Byte
TextBoxdate.MaxLength = 8 'nb caractères maxi autorisé dans le textbox
valeur = Len(TextBoxdate)
If valeur = 2 Or valeur = 5 Then TextBoxdate = TextBoxdate & "/"

End Sub

Private Sub ComboBox4_Change()
    Dim c As Range, sh As Worksheet
    Set sh = Worksheets("01-données")
    Set c = sh.[B:B].Find(ComboBox4, LookIn:=xlValues, lookat:=xlWhole)
    TextBoximputation = IIf(c Is Nothing, "", c.Offset(, 1))
End Sub

Private Sub CommandButton3_Click()
 Dim NF
  NF = Application.GetOpenFilename("Fichiers jpg,*.jpg")
  If Not NF = False Then
    Me.CHEMIN = NF
    Me.Image1.Picture = LoadPicture(NF)
    Me.Image1.PictureSizeMode = fmPictureSizeModeStretch
  End If

merci de votre aide par avance
 
End Sub

Private Sub CommandButton4_Click()
Image1.Picture = LoadPicture("")
End Sub
 
Bonjour.
Non, je n'ai pas d'outils qui créent des base de données quand même.
Excel a déjà la commande Mettre sous forme de tableau qui est pas mal, et fabrique à partir d'une plage d'abord ordinaire un ensemble commode à gérer puisque munie de propriété ListRows et ListColumns qui sont des collections, munies donc des méthodes Add et Delete.
Je vous ai envoyé ça en prévision de la suite.
Ce que j'aimerais c'est que vous commenciez par créer ce ListObject, et que vous mettiez dans chaque champ de la fiche une formule =Colonne PlgLCou
Coté UserForm, je joins deux classeurs pour que vous voyez un peu où je veux en venir.
Celui de Tomasdu43 n'a pas, dans dans son UserForm, de système de mise à jour, par contre il a un système de formules dans une grosse fiche, différent toutefois de ce que je vous propose (=INDEX(Colonne;NLig) au lieu de l'intersection =Colonne PlgLCou), mais le principe sera à peu près le même. Au lieu de Feuil2.Names.Add "LGén", Lignes(1) + 1 ce sera FeuilX.Names.Add "PlgLCou", CL.Lignes(LCou).Range
 

Pièces jointes

Dernière édition:
Remarque: Il serait concevable, si ça avait votre préférence, de mettre à jour la base depuis la fiche, l'UserForm se bornant à sélectionner la ligne après l'avoir éventuellement créée et à corriger l'image.
Le principe: La ligne en cours d'affichage serait la seule à porter des formules renvoyant vers les champs de la fiche, et quand il change de ligne il fige les valeurs de l'ancienne, se sert néanmions de ces formules pour retrouver… oui enfin je ne vais pas détailler tout le processus ici …
 
Dernière édition:
Remarque: Il serait concevable, si ça avait votre préférence, de mettre à jour la base depuis la fiche, l'UserForm se bornant à sélectionner la ligne après l'avoir éventuellement créée et à corriger l'image.
Le principe: La ligne en cours d'affichage serait la seule à porter des formules renvoyant vers les champs de la fiche, et quand il change de ligne il fige les valeurs de l'ancienne, se sert néanmions de ces formules pour retrouver… oui enfin je ne vais pas détailler tout le processus ici …
j'ai rempli les info pour crée userform et cela me génère une erreur
 

Pièces jointes

car dans mon fichier précédant je duplique une fiche pour facilite les utilisateur et après il modifie la fiche correspondant sélectionne
peut être a place de valider il faut mettre créé nouvelle fiche

j'ai modifier les mémo des checkbox ils sont différents mais cela mets encore une erreur
 

Pièces jointes

J'ai dit: Pas d'espace dans les Mnémo. "sous traitant" pas valide. Mettez "SousTrait"
Le CBnValider affichera aussi déjà "Ajouter" quand aucune ligne existante n'aura été isolée.
Je propose un bouton "Mémoriser" qui notera les valeurs dans un TVLMém(), et lors de la frape d'une combinaison inexistante il en affichera le contenu au lieu de celui d'un tableau vide.
 
Dernière édition:
J'ai dit: Pas d'espace dans les Mnémo. "sous traitant" pas valide. Mettez "SousTrait"
Le CBnValider affichera aussi déjà "Ajouter" quand aucune ligne existante n'aura été isolée.
Je propose un bouton "Mémoriser" qui notera les valeurs dans un TVLMém(), et lors de la frape d'une combinaison inexistante il en affichera le contenu au lieu de celui d'un tableau vide.
j'ai modifier mes éléments plus d'espace plus de doublon et j'ai mis memoriser a la place de modifier
et cela mets une erreurs
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
736
Compte Supprimé 979
C
Réponses
1
Affichages
878
Retour