Utilisation de range avec liste

bonjour

j'ai cree une liste contenant le nom de mes cellules nommees. je fais appel a cette liste par une boucle for, afin de recuperer la valeur de cette cellule. Voici le code :

cel_src = Split("date customer collection_post_code delivery_post_code tot_spot_price_gbp promotion")
cel_dst = Split("date_data cust_data from_data to_data price_data promo_data")
For i = 0 To UBound(cel_dst)
    .Range(cel_dst(i) & .Rows.Count).End(xlUp)(2) = Range(Cel_dest(i))
Next 

en gros pour faire simple je copie les cellules d'une feuille dans un tableau de donnees a chaque appui sur un bouton.

Seulement le code s'arrete en surlignant de jaune le

  .Range(cel_dst(i) & .Rows.Count).End(xlUp)(2) = Range(Cel_dest(i))

Auriez-vous une solution SVP ?

Bonjour,

Quelle(s) est (sont) l'(es) erreur(s) affichée(s) ?

Je crains qu'il y ait plusieurs erreurs ...

.Range nécessite un With et un End With

End(xlUp) va onner une cellule, je ne vois pas pourquoi mettre ensuite un indice d'un array !!!

Je joint une capture de l'erreur


Petite precision : la variable cel_dst contient les nom des colonnes de la feuille datas (le but etant donc de mettre la variable dans la colonne correspondante sans faire appel aux lettres si c'est possible)

capture

et pour ceci ??

Steelson a écrit :

.Range nécessite un With et un End With

End(xlUp) va onner une cellule, je ne vois pas pourquoi mettre ensuite un indice d'un array !!!

Que veux-tu faire avec cette formule ?

.Range(cel_dst(i) & .Rows.Count).End(xlUp)(2) = Range(Cel_dest(i))

La meme chose au'ici :

https://forum.excel-pratique.com/excel/simplifiation-de-code-t96566.html

https://forum.excel-pratique.com/excel/boucle-avec-arret-t96445.html

La difference etant que j'ai depuis renomme mes cellules et mes colonnes de destination

Il y a donc bien un With et End With

https://forum.excel-pratique.com/excel/simplifiation-de-code-t96566.html#p559837


Et d'où vient ton Cel_dest

La réponse de MFerrand était différente !!

Bonjour, Salut Steelson !

Informations insuffisantes pour qu'on puisse voir de quoi il retourne ! Dis-nous tout, et indique à quoi correspondent tes noms parce que cela n'est pas clair !

Cordialement.

petite erreur de ma part, c'est bien cel_dst.

Mais ca ne marche pas pour autant

Mais ca ne marche pas pour autant

Steelson t'a déjà signalé pas mal d'erreurs de syntaxe si j'ai bien lu ! Il faut corriger les erreurs...

Je reprend du debut :

J'ai un tableau excel compose de deux feuilles : sur l'une je modifie des informations dans des cases specifiques qui sont nommees.

L'appui sur un bouton declenche l'envoi d'un mail (dont j'ai deja la macro) ainsi que l'enregistrement de ces donnees dans un tableau sur une autre feuille a la suite des autres. Mon probleme est ici : le but est que ces donnees apparaissent sur une meme ligne (un appui sur le bouton = une nouvelle ligne de donnees). Seulement pour m'y retrouver et parce que je serai ammene a rajouter des colonnes dans mon recapitulatif, j'ai nomme chaque colonne recevant les donnees.

Je n'arrive donc pas a dire a ma macro : "tu prends la cellule nommee intel et tu la met dans la colonne nommee intel_data.

Je joint un fichier qui recapitule un peu ce que je viens de dire.

13essai1.xlsm (24.03 Ko)

Pour commencer, les noms de ton code ne correspondent à rien qui figure dans le Gestionnaire de noms, donc à aucun nom dans le classeur ! Dans ces conditions, tu n'es pas prêt d'arriver à un quelconque résultat !

Effectivement, cela vient du fait que je n'ai pas trans;i la derniere version de mon fichier (le WE se fait desirer !! 8) )

6essai1.xlsm (23.08 Ko)

Il faut être plus rigoureux, depuis le début de tes messages tout va de travers ... mais on est patients !

ET je vous remercie de votre patience

Du coup j'ai cree un nouveau sujet avec un fichier, plus simple et plus adapte.

Bonjour,

Du coup j'ai cree un nouveau sujet avec un fichier, plus simple et plus adapte.

Bah oui, mais tu ne mets pas le lien

Je n'ai pas ouverts tous les fichiers successifs mais si je m'en tiens au début :

si cel_dst(i) est un nom

.Range(cel_dst(i) & .Rows.Count)

ne veut rien dire. Ca va te donner Range("collection_post_cod28")

Ce qui t'intéresse c'est sa colonne, et si tu veux y écrire (ou lire) la ligne lig alors utilise :

cells(lig, [cel_dst(i)].column)=xxx

eric

Effectivement j'ai mis un peu de temps, mon ordi a plante sans raisons apparentes...

Voici le lien : https://forum.excel-pratique.com/excel/vba-et-cellules-nommees-t97225.html

je vais cependant deja essayer ce que tu me dis

Rechercher des sujets similaires à "utilisation range liste"