Générer des cartes de visite à partir d'Excel à l'aide de VBA
Je suis à la recherche à la création d'un fichier excel où je pourrais remplir manuellement les contacts multiples informations afin que je puisse exporter les contacts (un par un) ou la totalité de leur personne vcf fichiers dans un répertoire spécifié. J'imagine que le meilleur moyen serait par VBA, mais je ne suis pas très knowleadgeable et besoin d'un peu de pression.
Veuillez voir ci-dessous la capture d'écran du fichier excel avec les champs de contact.
Toute orientation sera grandement apprécié.
OK, Donc j'ai d'abord commencé par s'attaquer à l'exportation de chaque ligne pour un individu vcard. Je suis à la suite de la stratégie suivante:
- Créer un temporaire de la nouvelle feuille de calcul (tmp)
- Coller les en-Têtes:
BEGIN:VCARD
VERSION: 3.0 - Copier coller de la 4ème rangée de mon image, de sorte qu'il comprend l'Id de la carte de visite et aussi la ligne je suis d'essayer d'exporter (dans le premier cas, la ligne 6). Je les coller transposé à la feuille de calcul tmp.
Que je suis coincé à ce stade de la façon dont la carte de visite est utilisé pour certains domaines est en les séparant par des ";" et ils sont dans des positions différentes. Je ne sais pas comment je peux générer ces en VBA en regardant les champs de la ligne 4. ex.: N1 et N2 doit créer moi la ligne: N:Stuart;Carol. Et la même chose se passe pour le champ ADR.
J'ai le code pour générer le fichier VCARD une fois que ce code est généré.
Toute aide sera appréciée.
OriginalL'auteur macutan | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
Voici comment je ferais. Créer une classe appelée Coordonnées avec les getters et setters pour ces propriétés.
Créer un CContacts classe afin de conserver toutes les Coordonnées des instances. Dans CContacts, créer un FillFromRange méthode pour charger tous les contacts.
Créer des procédures pour remplir les classes, à l'instar de ce
Pour cet exemple, j'utilise le double cliquez sur l'événement. Lorsque vous double-cliquez sur un contact, la carte de visite est créé. Vous aurez besoin de modifier pour utiliser les boutons. Obtenir la propriété TopLeftCell du bouton qui a été cliqué pour déterminer la ligne.
Qui récupère l'ID de la colonne C et appelle la CreateVCardFile méthode pour écrire le fichier.
C'est juste la construction d'une chaîne et de l'écriture dans un fichier. Cet exemple n'est pas pour VCard spec, de sorte que vous aurez à travailler sur ces détails. Pour cette méthode, vous aurez besoin de quelques constantes et une propriété qui crée le nom du fichier.
Et le nom de fichier de la propriété
Vous pouvez voir les omis les détails et la façon dont il travaille en collaboration par le téléchargement de ce fichier.
http://dailydoseofexcel.com/excel/VCardCreator.zip
Dick, j'ai fait quelques modifications au code. (si vous voulez je peux les coller ici sur les commentaires, fondamentalement, la modification de la syntaxe, de sorte que le fichier VCF œuvres. Je rencontre un problème qui est quand j'ai omettre certaines informations (ie.: adresse de courriel) et j'ai supprimer le dossier précédemment créé et double-cliquez sur la ligne pour qu'il se produit à nouveau, en quelque sorte, il utilise la précédente adresse e-mail saisie, c'est à dire ne pas effacer les données précédentes à partir de la mémoire. Où aimeriez-vous changer le code de sorte que cela ne se produise pas et si un champ est manquant, il va juste afficher aucune info. Merci encore une fois
Changement
If gclsContacts Is Nothing Then Initialize
justeInitialize
dans la procédure d'événement. Qui va remplir les classes à partir de la fiche chaque fois qu'il s'exécute et ramassez toutes les modifications que vous avez apportées à la feuille de calcul. Tant que vous n'avez pas une tonne de contacts, vous ne remarquerez probablement pas le supplément de temps de traitement.Dick, cela a fonctionné. J'ai quasiment fini ce que j'avais l'intention de le faire. Comment puis-je vous envoyer le fichier final, de sorte que vous pouvez mettre à jour le lien que vous avez collé le fichier. (ce fichier final a également travaillé dans les champs d'adresse). En outre, ce que les lignes de code que vous écrivez, de sorte que le fichier crée automatiquement les contacts de TOUTES les entrées lignes au lieu d'avoir à aller un par un?
Envoyer à [email protected]
OriginalL'auteur Dick Kusleika
EDIT: A vous avez admis que vous avez pratiquement pas de connaissances utiles sur le langage Visual Basic, en fait, vous avez besoin d'une SOLUTION, et non pas simplement un indice ou "push" comme vous l'appelez. Une solution est de ne pas être confondu avec le simple "aide". Je suis venu avec beaucoup moins de code pour accomplir l'objectif de votre feuille de calcul excel, exporter vers n'importe quel format, à condition que vous avez mentionné le résultat souhaité (et je veux dire un exemple de code vCard) dans un très court moment et sans besoin de plus d'aide de votre part. Mais vous agissez comme un professionnel qui a juste besoin d'un push... si il ya une telle chose. Encore une fois, ce n'est pas de l'orgueil, ni (je l'espère) suis-je sur l'offensive, je suis juste de critiquer la loi afin de donner un indice sur les limites de ce site particulier.
Votre question est assez générale, et je pense que le but de ce site est de trouver des réponses à des questions spécifiques et de ne pas donner des solutions aux problèmes de la complexité d'une application. C'est mon premier essai, peut-être que je me trompe, mais j'ai cette question semble être éligibles pour une mise de vote par la description "cette question n'est pas de montrer tout l'effort de recherche. il n'est pas clair ou pas utile".
Toutefois, si vous avez besoin d'un push en effet, vous pouvez trouver des informations sur le format de fichier VCard sur Wikipédia (avec des exemples) - il est dit que la dernière version du format XML, donc il devrait être facile si vous savez comment faire pour manipuler des chaînes de caractères dans Visual Basic et access Excel le contenu de la cellule à partir d'un script.
http://en.wikipedia.org/wiki/VCard
Si vous ne le faites pas, vous pouvez apprendre par la pratique sur par besoin, à des sites web tels que http://www.excel-vba-easy.com/
Essayer et revenir avec une question plus spécifique.
Je l'ai simplement commenté sur la question au lieu de "répondre", mais je n'ai pas trouvé un moyen pour que.
Heureux de voir votre réponse à la question que vous votez pour la question d'obtenir une baisse de vote. Je suis familier avec le format Vcard, je suis juste demander comment les gens allaient à l'approche de cette.
Je pense qu'il a besoin de 50 répétitions avant de pouvoir poster un commentaire. La réponse est la seule voie. stackoverflow.com/privileges/comment
Ah oui, vous avez raison 🙁
OriginalL'auteur bitoolean