Plage de données variable.

MaximeRoth

XLDnaute Junior
Bonjour,

Je suis en train de créer un fichier Excel permettant de faire le lien entre une base de données et un logiciel d'impression d'étiquettes.
Le logiciel en question peut lire des plages de données de Excel et me les afficher afin que je sélection les données que je souhaite imprimer.
Mon premier choix fut de créer un plage de 9500 lignes afin d'être tranquille. Malheureusement le logiciel dispose de bouton "dernier enregistrement" menant seulement à la dernière de la plage, quelle soit complète ou non...
Je souhaiterai donc créer une plage de données variant en fonction de mon nombre de lignes, me permettant d'avoir une plage de données ajuster à la ligne prêt.

Pour cela j'ai enregistré une macro de création de nom qui donne :

Code:
    ActiveWorkbook.Worksheets("Numéro de Série").Names.Add Name:="Table", _
        RefersToR1C1:="='Numéro de Série'!R1B9:R27B16"
    ActiveWorkbook.Worksheets("Numéro de Série").Names("Table").Comment = ""

Je souhaiterai maintenant incorporer un code comptant mes lignes jusqu'à ma première ligne vide, remplaçant alors la fin du code précédant avec le numéro de la dernière ligne complète.

Est ce possible et si oui quelqu'un à une idée ?

Merci.


A+
Max
 

Misange

XLDnaute Barbatruc
Re : Plage de données variable.

Bonjour
Si tu transformes le tableau contenant les données des étiquettes en tableau au sens excel du terme (onglet accueil/Style/mettre sous forme de tableau) tu crées automatiquement des noms dynamiques que tu peux utiliser dans ton code VBA
Voir ici :
Ce lien n'existe plus
et les deux pages suivantes
 

MaximeRoth

XLDnaute Junior
Re : Plage de données variable.

Bonjour,

Merci à vous 2.
J'ai opté pour la solution de Misange car fonction de Excel.
Cependant j'aurai une dernière question car j'utilise un programme Vba pour remplir ce tableau. Et mon programme fonctionne correctement il ajoute bien une ligne mais pas dans le tableau...
Ca va faire 1h que je tâtonne à coup de macro enregistrées puis modifier si un de vous à une idée parce que le résultat que j'ai pour l'instant c'est ça:
Code:
Sub aah()

'Aller en B9
Range("B9").Select

'Aller à la dernière remplie
[B65536].End(xlUp).Select

'Insérer une ligne vide
Selection.EntireRow.Insert

End Sub
Qui m'incrémente une ligne au rang à la première ligne vide -1. (Soit avant dernière ligne)
J'ai essayé de feinter avec un:
Code:
ActiveCell.Offset(1, 0).Select
Mais cela incrémente bien la ligne à la fin de mon tableau mais pas dans le tableau...

A+
Max
 

Misange

XLDnaute Barbatruc
Re : Plage de données variable.

C'est un copier coller d'excelabo :)
il faut évidemment adapter avec le nom de ton tableau (que je ne connais pas !) à la place de data_famille.
dans la 3° page du tuto j'ai expliqué comment manipuler les tables avec VBA et notamment comment insérer une ligne supplémentaire dans le tableau, ce que fait cette instruction.
A toi de tester.
 

MaximeRoth

XLDnaute Junior
Re : Plage de données variable.

Je n'avais pas vue les liens vers les pages 2 et 3 en bas :p
Sinon j'ai bien essayé ton code en le reprenant avec mon tableau joliment nommé "Tableau2" :
Code:
Dim LR As ListRows
Set LR = Range("Tableau2[#Totals]").ListObject.ListRows.Add(AlwaysInsert:=True)

Cependant à chaque exécution j'ai le message suivant:

"Erreur d’exécution 1004 :

La méthode 'Range' de l'objet '_Global' a échoué."
 

Discussions similaires

Réponses
7
Affichages
410

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz