Boucle While qui ne passe pas à la ligne inférieure

Résolu
PhilDk Messages postés 20 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 18 août 2014 - 17 nov. 2008 à 11:19
PhilDk Messages postés 20 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 18 août 2014 - 18 nov. 2008 à 10:01
Bonjour,
je dois recopier dans une BD des infos provenant d'un autre fichier excel, et je demmande que tant que la ligne inférieure n'est pas vide(boucle While), je la copie dans la bd et ainsi de suite. Mon problème est que lorsque je fais :


Range("B24").Select
While ActiveCell.Value <> ""



ActiveCell.Offset(1,-7).Select 'passer ligne inférieure 1ere cellule

Wend

Cette action ne s'effectue pas et recopie toujours la même ligne.
Je suis débutant et j'aimerai comprendre quelle est mon erreur.
Merci d'avance

4 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 nov. 2008 à 12:08
ceci fontionne parfaitement:
Sub test()
Sheets("feuil1").Select
    Range("i24").Select
    ActiveCell.Offset(1, -7).Activate
End Sub

donc une premiere erreur :
ce n'est pas
 Sheets(Escale).select
mais
 Sheets("Escale").select

une deuxieme erreur possible ... l'onglet  "Escale" n'existe pas ou n'est pas correctement orthographié

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 nov. 2008 à 11:48
bonjour
je vois deux erreurs
ActiveCell.Offset(1,-7).select
sachant que tu es sur la colone "B" (c'est à dire la colonne 2)comment peux tu tedécaler de 7 colonnes vers la gauche
de plus la syntaxe est normalement .Activate plutôt que .Select

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
PhilDk Messages postés 20 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 18 août 2014
17 nov. 2008 à 11:56
Bonjour pile_poil,
J'ai essayé également avec activate, mais aucun effet, concernant le décalage de cellule, c'est bon car je recopie plusieurs cellules vers la gauche, j'ai neutralisé la boucle pour voir, et ca se bloque en bout de ligne sans vouloir effectué le décallage vers le bas.

Sheets(Escale).Select
Range("i24").Select
ActiveCell.Offset(1, -7).Activate

bizare
0
PhilDk Messages postés 20 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 18 août 2014
18 nov. 2008 à 10:01
Bonjour,
Merci pour les réponses, tu as raison ça marche, c'est moi qui avait oublié de mettre une variable à la place d'un emplacement en dur, donc la boucle ne pouvait revenait toujours sur ma cellule en dur et faisait en sorte que cela ne passait pas à la ligne inférieure. Merci pour ton aide.
Phil.
0