Décalage de celulle

WSafari2 Messages postés 2 Date d'inscription jeudi 22 décembre 2011 Statut Membre Dernière intervention 22 décembre 2011 - 22 déc. 2011 à 16:04
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 24 déc. 2011 à 12:57
Tout d'abord bonjour à tous et bonnes fêtes de fin d'année!!

Je débute avec les macros Excel et je me retrouve bloqué sur une chose simple (enfin je pense) et malgré mes recherches sur le web et différents tests je ne trouve pas la solution.

1. J'ai fait un enregistrement de macro, qui me permet simplement d'importer des données externes depuis le web. L'import est un tableau simple en 2 colonnes et quelques lignes.

Sub Macro1()
' Macro1 Macro
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://stan.dashlane.com/fogbugz/default.asp?pgx=LF&ixFilter=380", _
Destination:=Range("$A$4"))
.Name = "default.asp?pgx=LF&ixFilter=380"
BLABLABLABLABLA
.Refresh BackgroundQuery:=False
End With
End Sub

2. Actuellement l’import se fait dans la cellule A$4 spécifié dans Destination:=Range("$A$4"))
Cependant, l’import de ce tableau se fera quotidiennement, car les valeurs changent tous les jours. Ce qui fait que si je re-importe par-dessus, excel va décaler les 2 colonnes vers la droite et afficher le nouveau tableau en A$4 ; finalement je lirai l’évolution des chiffres de la droite vers la gauche, au lieu de la gauche vers la droite (j’espere que je suis clair dans mes explications).

Concrètement je voudrais que l’import du tableau se fasse en A$4 la première fois, puis si les cellules sont pleines, que le deuxième import se fasse en C$4 (2 colonnes par tableau), puis F$4 etc. En gros faire un offset(colonne + 1 SI colonne précédente pleine).

Merci d’avance

W.

4 réponses

gourmand86 Messages postés 33 Date d'inscription mercredi 6 octobre 2010 Statut Membre Dernière intervention 9 janvier 2012
22 déc. 2011 à 16:17
Tu n'a que deux chose à faire, cherche la dernière cellule vide de la ligne 4 puis coller le tableau
pour recherche la dernier cellule vide :
dim i as integer
i=1
while cells(4,i)<>""
i=i+1
wend

Ainsi i sera égale à la dernière colonne vide
Si toute la colonne est plaine, sa te métra un message d’erreur.
tu na plus ca remplacer Destination:=Range("$A$4") par Destination:=cells(4,i)
0
WSafari2 Messages postés 2 Date d'inscription jeudi 22 décembre 2011 Statut Membre Dernière intervention 22 décembre 2011
22 déc. 2011 à 16:59
Tout d'abord merci pour ta réponse ULTRA rapide, c'est sympa.

J'ai essayé ton bout de code, je n'ai pas d'erreur particulière en activant la macro, mais le comportement est exactement le même qu'avant. Je me demande si je l'ai placé correctement. Voici le code actuel:


Sub Macro1()
'
' Macro1 Macro
'
Dim i As Integer
i = 1
While Cells(4, i) <> ""
i = i + 1
Wend
'
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://stan.dashlane.com/fogbugz/default.asp?pgx=LF&ixFilter=380", _
Destination:=Cells(4, i))
.Name = "default.asp?pgx=LF&ixFilter=380"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """tableview-table"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
0
gourmand86 Messages postés 33 Date d'inscription mercredi 6 octobre 2010 Statut Membre Dernière intervention 9 janvier 2012
22 déc. 2011 à 18:09
Tu veux dire que les deux tableaux se mettent l'un sur l'autre ?
Rentre tu vraiment les données dans la cellule ou place les tu dessus comme une image.
Dans le cas deux, tu peux mètre le nombre d’image en A4 (0 au départ)et mètre que
i=range("A4")*2
.
à la fin tu incrément le cellule A4 de 1
range("A4")=range("A4")+1
.

ps : mais les balistes code si tu veux avoir de l’aide, les balistes rend le code plus lisible et facile à déchiffré. (Sens baliste je ne cherche même pas à lire t’on code)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
24 déc. 2011 à 12:57
Bonjour, gourman,

En vacances et de passage (avec un clavier sans accents
ps : mais les balistes code si tu veux avoir de l’aide, les balistes rend le code plus lisible et facile à déchiffré. (Sens baliste je ne cherche même pas à lire t’on code)

Je me demande si tu ne serais pas egalement en vacances, dans le meme coin que moi, a pecher le meme type de poissons .
Les miens, de balistes, sont assez colores (plus de vert que de orange) et bien dentus. Et les tiens ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous