[VBA] - Coller tableau array ne donne pas de résultat

Bonjour,

Pour corriger des erreurs issues des différences entre le codage de caractères de différents logiciels ou de différentes versions de documents, j'exécute une macro qui va donner une correspondance à chaque symbole qui peut être trouvé.

Cette macro alimente une variable tableau (tab1 à 1 dimension).

D'habitude ça fonctionne, mais ici, je n'arrive pas à comprendre pourquoi le tableau tab1 ne peut pas être collé sur ma feuille... Excel se comporte comme si tout s'était bien passé, mais en fait il ne fait rien.

Les données présentes sur la plage du collage ne disparaissent pas (il n'y a donc pas de collage).

Vous savez d'où ça peut venir ? Il doit y avoir un truc qui m'échappe...

Je joins un document exemple où la colonne en vert correspond à la colonne qui doit être corrigée dans tab1, puis remplacée par les données de tab1.

Bonne journée !

19test.zip (627.79 Ko)

Bonjour Le Drosophile,

As-tu vérifié, à l'aide de la fenêtre variables locales par exemple, les valeurs que contenait le tableau avant le collage ?

En général, c'est un problème de range pas "resizé" ou de tableau (ici un vecteur ligne car à une dimension) pas transposé.

Tu devrais avoir cette ligne pour copier sur une colonne en principe :

range("A1:A10") = application.transpose(tableau)

ou

range("A1").resize(ubound(tableau)) = application.transpose(tableau)

par exemple. Les références sont à adapter...

Cdlt,

13test.zip (629.47 Ko)

Bonjour,

Merci pour votre réponse.
J'avais également utilisé

= application.transpose(tab1)

Je viens de réessayer dans le doute, mais ça ne vient pas de là.

J'en profite pour importer un nouveau doc exemple, avec de petites corrections.

As-tu vérifié, à l'aide de la fenêtre variables locales par exemple, les valeurs que contenait le tableau avant le collage ?

Oui, le tableau est correctement rempli, c'est la partie collage sur la feuille (peu importe l'endroit dans le document) qui ne fonctionne pas.

Ah mais je sais...

J'ai mélangé les deux manières de coller une les données dans une plage :

.Range(.Cells(1, 1), .Resize(UBound(tab1), 1))

En fait c'est soit :

.Cells(1, 1).Resize(UBound(tab1), 1) = tab1

Soit :

.Range(.Cells(1, 1),.cells(ubound(tab1),1) = tab1

Voilà problème résolu a priori... Erreur de syntaxe.

Bonne journée !

Parfait !

Pour ma part, je préfère la première façon de faire, il y a moins de risque de s'emmêler les pinceaux, je la trouve plus simple...

Merci, très bonne journée à toi aussi !

Rechercher des sujets similaires à "vba coller tableau array donne pas resultat"