Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Destination:=Range

  • Initiateur de la discussion Initiateur de la discussion WSafari
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

W

WSafari

Guest
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.
 
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.
 
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.
 
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.
 
Re : Destination:=Range

J'avais un problème similaire pendant un temps et je n'avais pas trouvé la réponse non plus. Un peu trop compliqué pour moi les macros!!

Bon courage.
 
Dernière modification par un modérateur:
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.
 
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é.
 
Re : Destination:=Range

1. Merci pour vos réponses, je teste ca de suite et je vous tiens au courant
2. je comprends mieux l'intérêt des balises, et effectivement ca rend le code plus lisible.

Merci encore
 
Re : Destination:=Range

après plusieurs essais différents j'obtiens toujours une erreur d'exécution '13' - Incompatibilité de type.

Est-ce que par hasard ça vous dit quelque chose?

Merci d'avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
199
Réponses
5
Affichages
914
Réponses
7
Affichages
367
Réponses
23
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…