Transférer les données d'un tableau nommé sur Excel dans un tableau VBA

Bonjour à tous,

Je débute en VBA et je voulais savoir si il était possible de transférer les données d'un tableau nommé sous Excel dans un autre tableau crée sur VBA.

Merci d'avance de vos réponses.

Bonjour,

Oui c'est possible :

sub test()
t = range("nomdutableau").value '<<< adapter le nom du tableau nommé
end sub

Cdlt,

Bonjour,

Merci de votre réponse, j'ai essayé de l'appliquer à mon programme mais cela ne fonctionne pas, car j'aimerais affecter mon tableau nommé sur Excel à un tableau déjà existant sur VBA. Je vous ai mis en PJ un fichier très simplifié avec mon problème.

Merci d'avance.

14test.xlsm (13.45 Ko)

Bonjour,

Pouvez-vous poster le code correspondant s'il vous plait (à l'aide des balises </> du ruban d'icônes) ? Pourquoi utiliser un tableau dynamique déjà existant ?

Quel est le nom du tableau structuré sur la feuille ?

Cdlt,

Bonjour à tous,

Je poste juste pour suivre le topic car je galère avec les Array et leur multidimensionnement dynamique et leur retransposition.

Il faut savoir que 3GB n'ouvre pas les fichiers donc il faut lui donner un maximum de détail. D'ailleurs 3GB tu devrais peut être le mettre dans ta signature, comme ça pas de surprise !

Pour le code :

Sub Tableau()
Dim tab_hypretraite(163, 16) As Double
tab_hypretraite(163, 16) = Range("Test").Value
End Sub

Et la feuille d'intérêt :

image

Cdlt,

Voici le code :

Sub Tableau()

Dim tab_hypretraite(163, 16) As Double

tab_hypretraite(163, 16) = Range("Test").Value

End Sub

J'utilise un tableau dynamique déjà existant car je m'en ressers dans d'autres modules de mon programme. Le nom du tableau sur la feuille est "Test".

Merci de votre temps.

Re, Salut Ergotamine ,

Il m'arrive quand même d'ouvrir des fichiers parfois mais là ça me parait pas nécessaire.

A ce que je vois, il ne s'agit pas d'une variable publique. Et il est tout à fait possible de réutiliser un tableau variant dans le code.

Sinon, il faudrait l'alimenter ainsi :

Sub Tableau()
Dim tab_hypretraite(163, 16) As Double
with range("Test")
    for i = 1 to .rows.count
        for k = 1 to .columns.count
            tab_hypretraite(i - 1, k - 1) = .cells(i, k).value
        next k
    next i
end with
End Sub

Sinon, on peut le faire en base 1 sans définir les dimensions au moment de la déclaration (ce qui les fixe définitivement) :

Sub Tableau()
Dim tab_hypretraite() As Double
with range("Test")
    redim tab_hypretraite(1 to .rows.count, 1 to .columns.count)
    for i = 1 to .rows.count
        for k = 1 to .columns.count
            tab_hypretraite(i, k) = .cells(i, k).value
        next k
    next i
end with
End Sub

Le plus simple étant l'écriture proposée plus haut...

Cdlt,

Rechercher des sujets similaires à "transferer donnees tableau nomme vba"