Programmation sous excel

Fermé
awomis - 28 juin 2013 à 12:50
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 3 juil. 2013 à 11:21
Bonjour,

j'ai voulu créer une liste d'inscription des personnes sous excel via VBA avec tout les détail possible : Photo, Adresse, Tél, Nom, Prénom ... mais je ne sais comment y arriver. est-ce que je peux avoir l'aide de quelqu'un SVP ?

A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
28 juin 2013 à 13:26
Bonjour,

Le problème de ce genre de fichier n'est pas dans les données textes ou leur traitement, mais dans les photos... Combien de personnes, à terme, seront inscrites dans ton fichier. en fonction du nombre de personnes et de la taille des photos, le fichier risque vite fait de devenir ingérable au niveau de son "poids" en octet...
Donne nous déjà un ordre de grandeur du nbre de personnes concernées et les noms de tous les champs que tu souhaites inclure.
0
awomis Messages postés 2 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 30 juin 2013
30 juin 2013 à 11:08
Merci pr la reponse.
Au fait,Le nombre de personne peut avoisiner 400. et voici le nom de tous les chants que je désire inclure Nom: Prénom: Adresse: Tél: Responssabilité: Durée: DATE de bapteme: Profession:
chaque détail doit être lié à une photo de personne.
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
30 juin 2013 à 14:46
Bonjour

Ci joint un exemple sur un autre thème d'insertion de photos
Le nom des photos -sans suffixe - est dans la colonne C
les photos peuvent être aux formats jpg, jpeg, gif, png

la macro "enlever_photo" pourrait être lancée par un "BeforeClose" du module "thisworkbook" pour éviter un poids trop lourd comme le signale notre ami Pijaku (bonjour Frank, ca va ?)

https://www.cjoint.com/?3FEoQB2HdU9
0
awomis Messages postés 2 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 30 juin 2013
Modifié par awomis le 30/06/2013 à 23:08
Merci mais je ne parvien pas à accédé au lien. Voici ce que la page affiche :
Forbidden
You don't have permission to access / on this server.
Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/0.9.8o Server at cjoint.com Port 80
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juil. 2013 à 08:39
Bonjour

Apparemment, cette interdiction vient de chez toi...

ci dessous les macros
comme il doit s'agir de photos d'identité, tu peux supprimer les lignes du code concernant la prise en compte du format horizontal d'une photo
dans l'exemple on présente les colonnes A à D (relire mon 1° message)

Option Explicit

Sub incorporer_image()
Dim Derlig As Integer, Design As String, Cptr As Integer, Chemin As String
Dim Fichier As String, Image As Picture, Cellule As Range, Rapport As Byte, Numero As Integer
     'initialisations
     Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
     Application.ScreenUpdating = False
     'parcours la liste
     Numero = 1
     For Cptr = 2 To Derlig
          Design = Cells(Cptr, "C")
          Chemin = ThisWorkbook.Path & "\" & "photos\"
          'prend en compte le format de la photo
          If Dir(Chemin & Design & ".png") <> "" Then Design = Design & ".png"
          If Dir(Chemin & Design & ".jpg") <> "" Then Design = Design & ".jpg"
          If Dir(Chemin & Design & ".jpeg") <> "" Then Design = Design & ".jpeg"
          If Dir(Chemin & Design & ".gif") <> "" Then Design = Design & ".gif"
          On Error GoTo inconnu
          Fichier = Chemin & Design
           Set Cellule = Cells(Cptr, "D")
           Set Image = ActiveSheet.Pictures.Insert(Fichier)
          'insere l'mage web dans la liste du matos
          On Error GoTo 0
          'ajuste la photo à la cellule
           With Image.ShapeRange
               .Top = Cellule.Top + 1
               .Left = Cellule.Left + 1
                Rapport = Round((Image.Width) / 21.16, 0) / Round((Image.Height) / 21.16, 0)
                If Rapport >= 1 Then
                    .Height = Cellule.Height - 10
                    .Width = Cellule.Width - 2
                    .LockAspectRatio = msoFalse
               Else
                    .Height = Cellule.Height - 2
                    .Width = Cellule.Width - 60
                    .Left = Cellule.Left + .Width / 4 'centrage vertical
                    .LockAspectRatio = msoFalse
               End If
               .Name = "numphoto" & Numero
          End With
               Numero = Numero + 1
     Next
     Exit Sub
     
inconnu:
     MsgBox "Nom de photo inconnu", vbCritical, "galerie photo"
End Sub


Sub enlever_photos()
Dim Nbre As Byte, Numero As Byte
With Sheets(1)
     On Error Resume Next
     Nbre = Application.CountA(.Columns("C")) - 1
     For Numero = 1 To Nbre
          .Shapes("numphoto" & Numero).Delete
     Next
End With


End Sub
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
1 juil. 2013 à 10:56
Salut Michel,

Ca va bien merci. Et toi?

Procédure complète, comme d'hab! J'aime bien le fait de ne pas stocker inutilement des images dans un classeur... D'où la nécessité de ta seconde procédure...
Petit question subsidiaire, pourquoi 21.16 dans la ligne :
Rapport = Round((Image.Width) / 21.16, 0) / Round((Image.Height) / 21.16, 0)
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juil. 2013 à 11:36
Bonjour,
pourquoi 21.16 ?
je ne sais plus pourquoi et je ne me souviens plus où j'ai pompé cette ligne....

si je retrouve, je te fais signe.... ;o)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
1 juil. 2013 à 11:39
peut être la largeur de la colonne du classeur concerné???
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
3 juil. 2013 à 07:52
A Awonis:

....DE RIEN !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
3 juil. 2013 à 09:57
Salut michel,

C'est de pire en pire et, je trouve, de plus en plus insupportable...
Sur mes discussions suivies, je suis sur que moins de 30% des gens répondent et/ou remercient... Aucun retour! C'est réellement pénible.

Bonne journée à toi.
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
3 juil. 2013 à 10:38
Salut,

Et encore, si on ne se fait pas engueuler après avoir fait remarquer l'impolitesse

a propos de 21.6, je viens de poser la question sur DVP....!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 759
3 juil. 2013 à 11:21
a propos de 21.6, je viens de poser la question sur DVP....!
Ok. Merci. En fait, j'aime bien comprendre...
0