Passer à la ligne suivante pour remplir un fichier Excel à partir de VBA


1

J'ai le code ci-dessous qui prend certains champs de mon formulaire MS Access (Une petite base de données de réservation d'hôtel) et remplit des cellules définies dans ledit fichier Excel.

Dim objXLApp As Object
Dim objXLBook As Object
Set objXLApp = CreateObject("Excel.Application")
Set objXLBook = objXLApp.Workbooks.Open("Y:\123files\File\Hotel Reservation.xls")
objXLApp.Application.Visible = True

objXLBook.ActiveSheet.Range("B2") = Me.GuestFirstName & " " & GuestLastName
objXLBook.ActiveSheet.Range("C2") = Me.PhoneNumber
objXLBook.ActiveSheet.Range("E2") = Me.cboCheckInDate
objXLBook.ActiveSheet.Range("F2") = Me.cboCheckOutDate
objXLBook.ActiveSheet.Range("H2") = Me.RoomType
objXLBook.ActiveSheet.Range("I2") = Me.RoomNumber
End Sub

Comment puis-je continuer à remplir un nouvel invité dans le même fichier Excel juste à la ligne suivante?


Au lieu de dupliquer votre question, modifiez celle d'origine en fonction de vos besoins.
Mehper C. Palavuzlar le

Désolé @edmon, j'ai essayé de fusionner les questions et la nouvelle version n'a pas été conservée. Toutes mes excuses pour la peine
Ivo Flipse

Réponses:


2

Ou simplement donner une réponse simple à la question exacte ici, si vous (peut-être pour d'autres raisons) voulez vraiment le faire via VBA. (Et pour être honnête, ma recommandation serait de créer un rapport dans access et de vider le fichier Excel dans son ensemble), le code VBA très simple suivant fera ce que vous voulez ...

Dim i as Integer 
i = ObjXLBook.ActiveSheet.UsedRange.Rows.Count 
ObjXLBook.ActiveSheet.Cells(i + 1, 2).Value = Me.GuestFirstName & " " & GuestLastName 
ObjXLBook.ActiveSheet.Cells(i + 1, 3).Value = Me.PhoneNumber 

Merci. Cependant, il ne déplace toujours pas une nouvelle quête sur la ligne suivante. Initialement, je voulais simplement lancer une requête pour indiquer à l’utilisateur si une pièce était disponible ou occupée, mais je n’ai aucune idée de la façon de rédiger cette requête. J’ai donc créé un fichier Excel contenant les informations relatives aux invités et les stockant dans un code couleur. graphique et informer l'utilisateur de la disponibilité ou non d'une salle. Une requête serait-elle plus facile?
Edmon

@ Robert. Je m'excuse, ça marche. La seule chose à faire est que cela commence par une ligne 1000 et non par une ligne 1. Que dois-je ajouter pour commencer à la ligne 1? Merci.
Edmon

Commencer sur la rangée 1 revient à s’assurer que toutes les autres rangées sont inutilisées. "Utilisé" dans Excel peut être délicat. J'essayerais de créer un nouveau classeur en supprimant les lignes 1 à 1000 (par sécurité), puis d'essayer le script. Cela devrait fonctionner et commencer par la première ligne qui ne contient aucune donnée (là encore, la définition des données par excel est un peu compliquée) ... Si vous essayez de l'insérer dans des lignes contenant déjà des données, ma recommandation est la suivante: serait inséré dans une autre feuille, puis utilisez une formule pour la feuille contenant les autres données à extraire de l'autre feuille.
Robert

0

Vous devriez lire http://office.microsoft.com/en-ca/access-help/import-export-and-link-data-between-access-and-excel-HP001095095.aspx , cela aidera votre lien votre Données MS Access avec une feuille de calcul MS Excel, pas besoin de VBA dans ce cas simple.

extrait:

Débuter avec l'opération d'exportation

ShowStep 1: Identifiez les données que vous souhaitez exporter

Commencez par localiser la base de données et l'objet dans la base de données contenant les données que vous souhaitez exporter. Vous pouvez exporter une table, une requête, un formulaire ou un rapport. Par exemple, vous pouvez exporter les données client stockées dans la table Clients ou l'intégralité du rapport de catalogue Produits.

Remarque Vous ne pouvez pas exporter de pages d'accès aux données (page d'accès aux données: page Web conçue pour afficher et utiliser des données provenant d'Internet ou d'un intranet. Ses données sont généralement stockées dans une base de données Access.), Macros et modules.

ShowStep 2: Décidez où commencer l’exportation

....

Vous pouvez exporter un objet à partir de la fenêtre Base de données (fenêtre Base de données: dans Access 2003 et versions antérieures, la fenêtre qui s'ouvre lors de l'ouverture d'une base de données ou d'un projet. Elle présente des raccourcis permettant de créer de nouveaux objets de base de données et d'ouvrir des objets existants. remplacé par le volet de navigation.), ou lorsqu'il est ouvert dans une vue. Le tableau suivant décrit l'impact de la vue sur ce qui est exporté.

Remarque Vous ne pouvez pas exporter de données en mode Création ou en vue SQL. Vue / fenêtre d'objet Objets exportés Fenêtre Table, Requête, Base de données de formulaire Tous les champs et tous les enregistrements Vues Tableau, Requête, Tableau croisé dynamique et Graphique croisé dynamique Tous les champs et enregistrements de la source d'enregistrement sous-jacente, qu'ils soient ou non inclus dans la vue. Vue Tableau, Requête, Formulaire Si vous souhaitez exporter uniquement certaines des données, vous pouvez les sélectionner, puis choisir de n'exporter que les données sélectionnées. Vous avez également la possibilité d'exporter l'intégralité de la fiche technique. Formulaire Vue de formulaire Tous les champs et enregistrements de la source d'enregistrement sous-jacente, qu'ils soient ou non inclus dans la vue. Fenêtre de la base de données de rapports, aperçu avant impression et aperçu de mise en page Toutes les données contenues dans les zones de texte des sections En-tête de groupe et Détails, et toute zone de texte dans un pied de groupe contenant une expression avec la fonction Sum. Access utilise la fonctionnalité de contour d'Excel pour formater le rapport dans Excel. Pour plus d'informations sur la manière dont un rapport est exporté vers Excel, reportez-vous à la section Comment les rapports sont-ils générés vers Microsoft Excel. Pour plus d'informations sur l'utilisation du rapport dans Excel, voir Rubriques sur l'utilisation des schémas dans l'aide de Excel.

ShowStep 3: Identifiez le fichier de destination pour l'opération d'exportation

Au cours de l'opération d'exportation, vous serez invité à spécifier le nom du fichier de destination. Si un fichier avec le nom que vous spécifiez n'existe pas, un nouveau fichier sera créé. Si le fichier existe, l’une des choses suivantes va se produire:

* If you are exporting a table or query and you don't select the Save Formatted check box during the export operation, the file will not be overwritten. A new worksheet will be added to the file with the same name as the object that is being exported. If a worksheet already exists with that name, Access will prompt you to either replace the contents of the corresponding worksheet, or specify a different name for the new sheet.

Si vous cochez la case Enregistrer le formatage, la feuille de calcul hérite des paramètres de format similaires à ceux de la feuille de données, mais remplace le contenu existant de la feuille de calcul.

* If you are exporting a form or a report, the file will always be overwritten. All of its existing worksheets will be removed, and a new worksheet with the same name as the exported object will be created.

ShowStep 4: Ce que vous devez savoir avant d’exporter certains types de données et contrôles

* Pictures and objects    All graphical elements, such as a logo, background picture, and contents of OLE object fields that are part of the exported data will not be exported.
* Graph    When you export a form or a report that contains a Microsoft Graph object, the graph object does not get exported. To resolve this situation, see How to export a graph from Access to Excel.
* Null values    Sometimes, Null values get replaced with the data that should be in the adjacent column in the resulting worksheet. For more information on when and why this problem occurs, and how to resolve it, see Nulls replaced with next field's data when you export to Excel.
* Calculated values    The expression that is used to calculate the values is not exported to Excel. Only the results of the expressions get exported.
* Date values    Date values earlier than Jan 1, 1900 do not get exported — the corresponding cell in the worksheet will contain a Null value, instead. For more information about how to resolve this, see Exporting dates may result in nulls or cause "Numeric Field Overflow" errorExporting dates may result in nulls or cause "Numeric Field Overflow" error.
* Check boxes    If you start the export operation from the Database window (Database window: In Access 2003 and earlier, the window that appears when a database or project is opened. It displays shortcuts for creating new database objects and opening existing objects. In later versions, it is replaced by the Navigation Pane.) or in Form view, check boxes on forms will not get exported. The corresponding column in the worksheet will display "#". To solve this situation, open the form in Datasheet view before exporting it. The corresponding column in the worksheet will contain TRUE or FALSE, depending on the selected status of the check box in the form.
* Subreports and subforms    Subreports are exported, but subforms will be ignored.

ShowStep 5: Démarrer l'opération d'exportation

  1. Si l'objet que vous souhaitez exporter n'est pas ouvert, dans la fenêtre Base de données (Fenêtre Base de données: dans Access 2003 et versions antérieures, la fenêtre qui apparaît lors de l'ouverture d'une base de données ou d'un projet. Elle affiche des raccourcis pour la création de nouveaux objets de base de données et l'ouverture d'objets existants. Dans les versions ultérieures, il est remplacé par le volet de navigation.), Cliquez sur le nom de l'objet. Pour ne sauvegarder qu'une partie d'une feuille de données, ouvrez la feuille de données et sélectionnez cette partie avant de continuer.
  2. Dans le menu Fichier, cliquez sur Exporter.
  3. Dans la zone Type de fichier, cliquez sur Microsoft Excel 5-7 ou Microsoft Excel 97-2003.

    Remarque Si vous ne voyez pas Microsoft Excel dans la zone Type de fichier, c'est que le chemin d'accès au pilote requis dans le registre n'est pas valide. Pour plus d'informations sur la résolution de ce problème, voir Message d'erreur ISAM introuvable.

  4. Cliquez sur la flèche à droite de la zone Enregistrer dans, puis sélectionnez le lecteur ou le dossier dans lequel vous souhaitez enregistrer.

  5. Dans la zone Nom du fichier, entrez un nom pour le fichier (ou utilisez le nom suggéré).
  6. Cochez la case Enregistrer formaté.
  7. Effectuez l'une des opérations suivantes: * Si vous enregistrez une fiche technique, cliquez sur Exporter tout pour enregistrer la fiche complète ou sur Enregistrer la sélection si vous avez sélectionné une partie de la fiche à l'étape 1. * Pour tous les autres objets de base de données, cliquez sur Exporter.

Étape 6: Consultez la feuille de calcul Excel

Ouvrez la feuille de travail et assurez-vous que les données ont été complètement exportées. Recherchez des indicateurs d'erreur sur les cellules (triangles verts) ou des valeurs d'erreur (chaînes commençant par "#", au lieu des données). Pour plus d'informations sur le dépannage des indicateurs d'erreur et des valeurs d'erreur, consultez l'aide d'Excel.

Lors de l'examen des erreurs dans la feuille de calcul, recherchez également les colonnes vides ou manquantes et les cellules vides. Si vous rencontrez des problèmes majeurs, corrigez-les dans la base de données source et répétez l'opération d'exportation.

Pour obtenir des informations de dépannage détaillées, voir Résoudre les problèmes d’exportation dans Access. Autres moyens d'importer des données Access dans Excel

Outre l'exportation, vous pouvez utiliser les techniques suivantes pour importer des données dans Excel à partir d'Access.

* Cut or copy data from Access and paste it into an Excel worksheet. For more information about how to do this, see the section "Copy or move records or data from multiple fields in Microsoft Access to another application" in the topic Copy or move data.
* Export data by using code. You can write a macro or a Visual Basic for Applications (VBA) procedure to export data programmatically. For more information about how to do this, see Export data programmatically.
* Load Access data in an instance of Excel.

ShowHow?

  1. Dans la fenêtre Base de données (fenêtre Base de données: dans Access 2003 et versions antérieures, la fenêtre qui apparaît à l'ouverture d'une base de données ou d'un projet. Elle présente des raccourcis pour la création de nouveaux objets de base de données et l'ouverture d'objets existants. Dans les versions ultérieures, elle est remplacée par le volet de navigation. .), cliquez sur le nom de la fiche technique, du formulaire ou du rapport que vous souhaitez enregistrer et charger dans Excel. Pour ne charger qu'une partie d'une feuille de données, ouvrez-la, puis sélectionnez cette partie avant de continuer.
  2. Dans le menu Outils, pointez sur Liens Office, puis cliquez sur Analyze It with Microsoft Excel.

    • Exportation de données Microsoft Access vers un langage de balisage extensible (XML): forme condensée de langage SGML (Standard Generalized Markup Language) permettant aux développeurs de créer des balises personnalisées offrant une grande souplesse pour l'organisation et la présentation des informations. (Fichier XML), qui peuvent ensuite être importés dans Excel. Pour plus d'informations sur l'exportation des données d'accès au format XML, voir Exporter les données d'accès au format XML.

....

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.