Destination:=Range

WSafari

XLDnaute Nouveau
Bonjour à tous, et bonnes fêtes de fin d'année.

Débutant sur les macros Excel, j'aurais une question à poser à la communauté.

j'ai enregistré une macro:
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", _
Destination:=Range("$A$39"))
.Name = "default.asp?pgx=LF&ixFilter=381"
.FieldNames = True
.RowNumbers = False
etc...

et j'ai un petit souci avec le Destination:=Range("$A$39")). Concrètement, à chaque fois que je lance cette macro, celle-ci importe les données à la cellule ("$A$39") comme spécifié, mais étant donné que c'est un import que je devrai faire tous les jours, la macro décalera les données précédentes vers la droite pour y insérer les nouveaux résultats en ("$A$39"). Je voudrais savoir s'il y a un moyen d'écrire quelque chose comme ("$A$39" + 2 colonnes) à chaque fois que j'utilise ma macro.

ce qui ferait:
resultats du 20/12 en colonnes A et B
resultats du 21/12 en colonnes C et D
resultats du 22/12 en colonnes E et F
etc

au final ca me permettrait de lire les résultats de gauche à droite, plutôt que de droite à gauche.

Si je n'ai pas clair, je reformulerai ma question.

Merci d'avance à tous ceux qui pourront m'aider.

W.
 

Victor21

XLDnaute Barbatruc
Re : Destination:=Range

Bonjour, et bienvenue sur le forum. :)

Vous pouvez sélectionner la première cellule vide de la colonne A avec
Range("A65536").End(xlUp).Rows.Offset(1, 0).Select
Et la première cellule vide de la ligne 1 (Excel 2003 limité à 256 colonnes) avec
Range("IV1").End(xlToLeft).columns.Offset(0, 1).Select
Cela vous aide-t'il ?

Je vous incite à lire Lien supprimé. Vous y verrez, entre autre, l'incitation à joindre un fichier exemple pour illustrer votre question et, si ma mémoire est bonno, la manière d'utiliser les balises pour agrémenter la lecture des codes publiés.
 

WSafari

XLDnaute Nouveau
Re : Destination:=Range

Merci Patrick pour votre réponse rapide.

Je comprends le principe de votre réponse, mais malheureusement lorsque j'essaie d'intégrer cela dans ma macro, je me retrouve avec une erreur.

Serait-il possible que vous l'intégriez directement :With ActiveSheet.QueryTables.Add(Connection:= _
"URL;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" , _
Destination:=Range("$A$39"))
.Name = "default.asp?pgx=LF&ixFilter=381"

afin que je puisse mieux comprendre la syntaxe?

Merci d'avance

W.
 

Victor21

XLDnaute Barbatruc
Re : Destination:=Range

Re,

XLD n'est pas -ou ne devrait pas être - un distrbuteur automatique de code, mais un outil convivial permettant à chacun de partager ses connaissances pour permettre à tous de s'améliorer.
Afin de vous permettre d'en profiter, je vous ai donné deux conseils :
- utiliser les balises pour rendre la lecture du code plus agréable, et
- joindre un fichier exemple. (Quelques lignes suffisent : données d'entrée fictives, mais représentatives, contraintes, résultat souhaité, explications et code VBA concerné). Ce fichier joint permet aux intervenants de proposer des solutions adaptées.

Mais c'est votre fichier, et vous restez libre de suivre - ou pas- mes recommandations.
 

WSafari

XLDnaute Nouveau
Re : Destination:=Range

Je ne me suis pas inscrit sur ce forum en pensant que c'était un "distributeur automatique de code", mais simplement parce que j'avais une question à laquelle je n'ai pas de réponse. Et étant donné que le monde des macros est tout nouveau pour moi, je me suis dit que cela pouvait être intéressant de trouver une communauté compétente.

A propos de vos conseils:
1. il me semble vous avoir remercié pour votre aide, malheureusement étant totalement débutant, je rencontre des problèmes de syntaxe, et je ne sais pas utiliser "des balises pour rendre plus lisible mon code" non plus. D'autant plus que le bout de macro envoyé est un morceau créé directement par excel grâce à la fonction 'enregistrer une macro'. J'ai simplement besoin de modifier une ligne particulière à savoir le Destination:=Range("$A$39").

2. je n'ai pas joint de fichier exemple pour la simple et bonne raison que la macro utilisée me sert à importer des données externes via une url qui sont confidentielles via un bouton dédié. Un fichier exemple n'aurait donc servi à rien, c'est la raison pour laquelle j'ai préféré copier un bout du code et d'expliquer la ligne exacte qui me pose problème et que je souhaite modifier.

Je pensais mon problème simple, et espérais un échange cordial et une bonne âme pour m'aider; apparemment c'est plus compliqué que prévu. En attendant je réessaierai quand même d'utiliser vos 2 lignes Range.End.Offset même si je peine les comprendre, ou bien je me débrouillerai différemment.

W.
 

Victor21

XLDnaute Barbatruc
Re : Destination:=Range

Re, bonjour Jean-Marcel :)

En-dessous de Réponse rapide, vous avez une série d'icônes (il y en a d'autres si vous allez en "avancée"). Lorsque vous cliquez sur la dernière en forme de bulle, et que vous insérez votre code, cela donne :
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx" , _
Destination:=Range("$A$39"))
.Name = "default.asp?pgx=LF&ixFilter=381"

Plus d'infos sur les balises BB ici.

Et celle-ci : [noparse]
VB:
LeCode
[/noparse]
donne :
VB:
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx" , _
Destination:=Range("$A$39"))
.Name = "default.asp?pgx=LF&ixFilter=381"

Je souhaite que la précision que vous a apporté Jean-Marcel vous aura dépanné.
 

Discussions similaires

Réponses
23
Affichages
1 K
Réponses
16
Affichages
598

Statistiques des forums

Discussions
312 687
Messages
2 090 952
Membres
104 705
dernier inscrit
Mike72