Bonjour,
J'essaye d écrire une procédure pour coller ce que contient le clipboard dans une table.
Cette table est limites a 22 lignes et 5 colonnes.
La procédure coller est associées a un bouton.
J´essaye de la faire fonctionner de la manière suivante:
si la table est vide: coller a partir de la première ligne
si elle n est pas vide coller juste en dessous de la derniere ligne qui contient de l information
si l utilisateurs tente de coller plus de 22 lignes, coller les premières 22 lignes et afficher un message d erreur pur les lignes restantes.
Si les elements a coller dépassent la capacité de la table, coller pour remplir la table et afficher une erreur:
J ai commence de la manière suivante :
Range("OrderPart").End(xlDown).Offset(1, 0).PasteSpecial xlPasteValues
Le problème est que cela ne colle pas si la table est vide.
Donc je l ai change en vérifiant que si
Range("OrderPart").cells(1,1)
est vide, le collage commence a
Range("OrderPart").cells(1,1)
et sinon
Range("OrderPart").End(xlDown).Offset(1, 0).PasteSpecial xlPasteValues
C'est pas tres élégant mais c est un début.
Mon problème principale est pour déterminer quand est ce que l information a coller dépasse la capacité et mieux de combien de ligne elle la dépasse.
J avais penser a bloquer les cases juste en dessous de la table et d utiliser une «*on err goto*» mais l erreur apparaît a chaque fois et rien n est coller.
J ai aussi essayer de trouver un moyen de pouvoir lire le contenu du clipboard et de déterminer le nombre de ligne mais je n ai pas trouver d information pour le faire.
Une autre solution , serait de coller les elements dans une table intermédiaire, compter le nombre de ligne et comparer avec le nombre de ligne qui contient de l information dans la table et ensuite coller uniquement celle qui permette de remplir la table mais cela ne me paraît pas tres optimiser.
SI quelqu'un un a une autre idée, merci de la partager.
Xavier
Partager