XL 2010 Envoyer les photos d'un Userform vers des cellules

Myst

XLDnaute Occasionnel
Bonjour le forum
Je sollicite de nouveau votre participation pour une problématique qui est la suivante
Dans le fichier joint il y a 14 Feuil qui sont remplis par l'Userform"SAISIE" ,le problème concerne les images qu'il y a dans chaque page du multipage que je voudrais coller dans les cellules:
-Image de la page1 du multipage vers la cellule A6 de la feuille "1"
-Image de la page2 du multipage vers la cellule A6 de la feuille "2"
-Image de la page3 du multipage vers la cellule A6 de la feuille "3"
jusqu’à la feuille "14" en appuyant sur le bouton "VALIDER" de l'Userform "SAISIE"
merci
 

Pièces jointes

  • MYST 1.xlsm
    4.5 MB · Affichages: 83
C

Compte Supprimé 979

Guest
Bonjour Myst

Tu bosses bans les encarts publicitaires apparemment et ils n'ont pas de sous pour un logiciel spécialisé !?

Perso, je pense que tu t'y prends très mal :rolleyes:
J'ai toujours pour principe de traiter les données comme dans une BdD, donc inutile d'avoir X feuilles et X pages de formulaire un seule tableau avec le données en ligne.

Ce que j'en dis...
 

vgendron

XLDnaute Barbatruc
Hello

Pas sur d'avoir compris ou et quand ca doit se faire... mais il te manque la partie de code qui insère une photo
le code suivant est à adapter car il va chercher une photo sur mon DD et la met en A6..

ActiveSheet.Pictures.Insert("C:\Disque E\Mes Documents\Perso\Pictures\image001111b.jpg").Select


With Selection
.ShapeRange.Left = [A6].Left
.ShapeRange.Top = [A6].Top
End With
 

Myst

XLDnaute Occasionnel
Bonjour BrunoM45
C'est pour ma copine qui actuellement perd un temps fou sur Powerpoint, saisie, mise en page, ect... :mad:
Pour ce qui est de la méthode a suivre , je t’avoue que je suis loin de maitriser le sujet, je veux juste lui faire gagner un peu de temps dans son boulot:D
Une aide de ta part peut être ?
 

vgendron

XLDnaute Barbatruc
Bon.. déjà. la lecture de ton code est asssez indigeste..
il faudrait arranger tout ca. notamment en ne mettant les conditions IF sur une seule ligne, vu que une seule instruction
ca donnerait donc 14 blocs comme celui ci..


Code:
'*******************************************
Sheets("1").Activate
Me.MultiPage1.Value = 0

Range("F5").Value = TextBox13.Value
Range("A8").Value = TextBox14.Value
Range("H8").Value = TextBox15.Value
Range("A12").Value = TextBox16.Value
Range("A15").Value = TextBox17.Value
Range("C18").Value = ComboBox2.Value
Range("K18").Value = TextBox182.Value
Range("I15").Value = TextBox18.Value
Range("K21").Value = TextBox19.Value
Range("K22").Value = TextBox20.Value
Range("K23").Value = TextBox21.Value
Range("G25").Value = TextBox22.Value
Range("M27").Value = TextBox23.Value
Range("A27").Value = TextBox24.Value

If CheckBox7.Value = True Then Range("C21").Value = "X"
If CheckBox8.Value = True Then Range("C22").Value = "X"
If CheckBox9.Value = True Then Range("C23").Value = "X"
If CheckBox11.Value = True Then Range("G21").Value = "X"
If CheckBox12.Value = True Then Range("G22").Value = "X"
If CheckBox10.Value = True Then Range("G23").Value = "X"

ensuite.. tu fais donc 14 fois la meme chose. mais avec le nom des textBox qui changent..
sauf que d'une feuille multipage à l'autre.. c'est le meme..
avec un nommage logique des différents controls des multipages, tu pourrais tout réduire à une boucle..
exemple de nommage
TB1MP1 -->TextBox1MultiPage1
TB2MP1-->TextBox2MultiPage1
...
...
ainsi.. la boucle deviendrait un truc du genre
for i = 1 to 14 'boucle sur les 14 Multiplages
Range("F5").Value = Me.Controls("TB1MP" & i).Value
Range("F6").value=Me.controls("TB2MP" &i).value
etc etc
next i
 

Paf

XLDnaute Barbatruc
Bonjour à tous,

Pour copier une image d'une USF vers une feuille, le plus simple (à mon avis) est d'insérer dans chaque feuille (1 à 14) un objet Image (activeX) nommé Image1 (par exemple).

Et dans Private Sub CommandButton6_Click() de l'USF SAISIE, rajouter un code du type:

Code:
For i =1 To 14

    Worksheets(CStr(i )).Image1.Picture = Me("image" & i).Picture
Next

Il faut bien sûr que dans l'USF les objets images soient numérotés en ordre croissant . Sur la Page1 du multipage => Image1, Page2 => Image2 ...

A+
 

Paf

XLDnaute Barbatruc
re,

La place du code dans Private Sub CommandButton6_Click() n'a pas d'importance puisqu'il n'y a pas d'incidences sur le reste du code.

Quand j'écrivais:
insérer dans chaque feuille (1 à 14) un objet Image (activeX) nommé Image1 (par exemple).

je voulais dire qu'il faut insérer dans chaque feuille ( 1 à 14) un objet Image nommé Image1.
Image1 pour la feuille 1, Image1 pour la feuille 2, ...., Image1 pour la feuille 14

Sinon ça ne marche que pour i= 1;

En laissant tels quels les noms d'objets Image dans les feuilles, on pourrait (peut-être) dynamiser le nom de l'objet Image , du style (qui ne fonctionne pas)
For i = 1 To 14
Worksheets(CStr(i)).Image & i .Picture = Me("image" & i).Picture
Next

Mais je ne sais pas faire ...
A+
 

Myst

XLDnaute Occasionnel
Re
J'avais oublié le 1 dans la ligne ci-dessous et j'ai renommé les images dans les feuilles, donc maintenant ça fonctionne nickel:D
Worksheets(CStr(i )).Image1.Picture = Me("image" & i).Picture
Par contre une derniére chose si tu le permet, pour faire la même chose de l'image "100" de userform "SAISIEO" vers l'Image "100" de la feuil "00"
 

Paf

XLDnaute Barbatruc
Re,

Dans l'USF SAISIEO, pas trouvé d' objet Image Image100 mais Image1; et dans la feuille "00" pas d'objet image ni 100 ni rien.

Mais quels que soient les noms, le principe reste le même :

l'image de l'objet image de la feuille est "rempli" par l'image de l'objet image de l'USF

Donc, dans Private Sub CommandButton2_Click() de l'USF SAISIEO (juste avant SAISIE0.Hide) :

Worksheets("00").Image100.Picture = Image100.Picture

Si Image100 est le nom de l'objet image de la feuille, sinon adapter
Si Image100 est le nom de l'objet image de l'USF, sinon adapter

A+
 

Myst

XLDnaute Occasionnel
Re
Si simple et pourtant si complexe, je croyais avoir joint la version 4 du ficher mais non (?) un grand merci pour l'aide que tu m'as apporté sur le problème c'est parfait.
J'ai une autre demande concernent l'effacement de tous les contrôles du multipage en cliquant sur le bouton "Effacer toutes les données" de l'Userform "SAISIE" mais peut être dois je passer par un autre post ?
En tout cas encore merci, tu m’enlève un cactus du pied
Je joint le fichier fonctionnel mais non finalisé pour ceux que ça intéresse
 

Pièces jointes

  • Myst 4.xlsm
    5.7 MB · Affichages: 55

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour Myst :),

Ce n'est pas parce qu'on ne paye rien que ça ne coûte rien. XLD est mis gratuitement à disposition de tout le monde. Mais derrière il y a de la sueur, du temps passé et des euros (ne serait ce que pour l'hébergement, la maintenance du serveur et le stockage).

Dans cette discussion, 4 versions du fichier ont été publiées pour un total de près de 20 Mo. En remplaçant simplement les images par des images de quelques Ko, en ne conservant que les 4 premiers onglets, la taille du fichier est considérablement réduite sans nuire à la compréhension de son fonctionnement. La taille des fichiers est divisée par environ 33.

Cordialement,
 

Pièces jointes

  • MYST allégé.xlsm
    144.1 KB · Affichages: 44

Myst

XLDnaute Occasionnel
Bonjour mapomme, le forum
Méa culpa :confused:, je n'avais pas cette notion en tête, j'ai supprimé 2 messages dans la discussion en cours et pour les éventuels post a venir j'allégerai les fichiers :confused: , total respect aux personnes qui font en sorte que le site fonctionne;)
Message reçu :)
 

vgendron

XLDnaute Barbatruc
Hello

Le week end étant passé hors conneXion, je n'ai pas suivi la discussion..
et comme je m'étais amusé à renommer les controls, je me dis que ce serait bête de ne pas aller au bout..
donc voici le code qui s'en retrouve considérablement raccourci..enfin. je crois ;-)

j'ai ajouté le code pour effacer le multipage

PS: forcément, ca va planter car il n'y a que 2 onglets sur les 14.. suffit de les copier coller..
 

Pièces jointes

  • MYST5.xlsm
    570.1 KB · Affichages: 57
Dernière édition:

Myst

XLDnaute Occasionnel
Bonjour vgendron, le forum
Merci pour le code, dommage pour la connexion cela m'aurai évité de faire en 250 lignes ce que tu a fais en 26 :mad:
Il ne manque plus qu'une chose sur le fichier
Dans la page "00" je voudrais que les flèches en colonne "B" apparaisse seulement s'il y a du texte dans les cellules correspondante en colonne "C"
merci:D
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu