comment sortir avant la fin d'une boucle while..............wend
Le
Alfred WALLACE
Bonjour,
j'ai une boucle comme çà :
Selection.End(xlDown).Select
While ActiveCell.Row() < dernier_ligne ' toujours pas fin du
tableau
Selection.Copy 'on memorise le contenu de la
cellule
lig_cour_debut = ActiveCell.Row 'mémorise la ligne
courante lig_cour de debut
Selection.End(xlDown).Select'selectionne jusqu'a la
premier cellule non vide
lig_cour_fin = ActiveCell.Row - 1
Range(Pcol & lig_cour_debut & ":" & Pcol &
lig_cour_fin).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
Wend
dans une colonne donnée, cette boucle "comble" les trous. ok, mon pb
est que,
à la fin je copie la dernière cellule non vide jusqu'a la ligne 65535
!
la dernière ligne de la base peut être par exemple 1020 mais la
dernière cellule non
vide (pour la colonne concernée) peut être la ligne 1015. dans ce
cas, je selectionne
jusqu'a 65535 !
comment sortir de là à la fin de ma colonne ?
Merci
José
j'ai une boucle comme çà :
Selection.End(xlDown).Select
While ActiveCell.Row() < dernier_ligne ' toujours pas fin du
tableau
Selection.Copy 'on memorise le contenu de la
cellule
lig_cour_debut = ActiveCell.Row 'mémorise la ligne
courante lig_cour de debut
Selection.End(xlDown).Select'selectionne jusqu'a la
premier cellule non vide
lig_cour_fin = ActiveCell.Row - 1
Range(Pcol & lig_cour_debut & ":" & Pcol &
lig_cour_fin).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
Wend
dans une colonne donnée, cette boucle "comble" les trous. ok, mon pb
est que,
à la fin je copie la dernière cellule non vide jusqu'a la ligne 65535
!
la dernière ligne de la base peut être par exemple 1020 mais la
dernière cellule non
vide (pour la colonne concernée) peut être la ligne 1015. dans ce
cas, je selectionne
jusqu'a 65535 !
comment sortir de là à la fin de ma colonne ?
Merci
José

Poser une question


.
For ligne= 1 to Range("A65536").End(xlUp).Row
Intercalle ton code à l'intérieur de cette boucle qui va s'arréter à la
dernière ligne remplie
Next ligne
A plus
FL
"Alfred WALLACE"
Bonjour,
j'ai une boucle comme çà :
Selection.End(xlDown).Select
While ActiveCell.Row() < dernier_ligne ' toujours pas fin du
tableau
Selection.Copy 'on memorise le contenu de la
cellule
lig_cour_debut = ActiveCell.Row 'mémorise la ligne
courante lig_cour de debut
Selection.End(xlDown).Select'selectionne jusqu'a la
premier cellule non vide
lig_cour_fin = ActiveCell.Row - 1
Range(Pcol & lig_cour_debut & ":" & Pcol &
lig_cour_fin).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
Wend
dans une colonne donnée, cette boucle "comble" les trous. ok, mon pb
est que,
à la fin je copie la dernière cellule non vide jusqu'a la ligne 65535
!
la dernière ligne de la base peut être par exemple 1020 mais la
dernière cellule non
vide (pour la colonne concernée) peut être la ligne 1015. dans ce
cas, je selectionne
jusqu'a 65535 !
comment sortir de là à la fin de ma colonne ?
Merci
José
Bonjour FL, heu, non, la dernière ligne remplie de ma colonne, n'est
pas forcément
la dernière ligne de tous les enregistrements de ma base. ex :
prénom nom2famille ville ligne 1
aaaa TTTTTT lyon ligne 2
bbbb lyon ligne 3
cccc UUUUU marseille ligne 4
dddd paris ligne 5
eeee paris ligne 6
ici, la dernirère ligne de la base est la ligne 6, mais dans la
colonne nom2famille
c'est la ligne 4, ors, je dois recopier UUUU jusqu'à la dernière
ligne de la base (donc 6).
Mon code fonctionne, sauf que, pour la colonne nom2famille, il me
recopie UUUUU
jusqu'à la ligne 65535 au lieu de ligne 6
snif...
Merci pour ton aide.
José
Dans ton exemple, ta colonne A est renseignée jusqu'à la ligne 6
la boucle suivante va bien se faire de la ligne 1 à la ligne 6
For ligne= 1 to Range("A65536").End(xlUp).Row
Intercalle ton code à l'intérieur de cette boucle qui va s'arréter à la
dernière ligne remplie
Next ligne
si au lieu de A65536, tu mets B65536, effectivement la boucle s'arrête à la
ligne 4,
@+
FL
"Alfred WALLACE"
FL wrote:
Bonjour FL, heu, non, la dernière ligne remplie de ma colonne, n'est
pas forcément
la dernière ligne de tous les enregistrements de ma base. ex :
prénom nom2famille ville ligne 1
aaaa TTTTTT lyon ligne 2
bbbb lyon ligne 3
cccc UUUUU marseille ligne 4
dddd paris ligne 5
eeee paris ligne 6
ici, la dernirère ligne de la base est la ligne 6, mais dans la
colonne nom2famille
c'est la ligne 4, ors, je dois recopier UUUU jusqu'à la dernière
ligne de la base (donc 6).
Mon code fonctionne, sauf que, pour la colonne nom2famille, il me
recopie UUUUU
jusqu'à la ligne 65535 au lieu de ligne 6
snif...
Merci pour ton aide.
José
J'ai résolu le pb comme çà :
Selection.End(xlDown).Select
While ActiveCell.Row() < dernier_ligne ' toujours pas fin du tableau
Selection.Copy
lig_cour_debut = ActiveCell.Row 'mémorise la ligne courante
lig_cour de debut
Selection.End(xlDown).Select
If ActiveCell.Row() > dernier_ligne Then
Selection.End(xlUp).Select
Range(Pcol & lig_cour_debut & ":" & Pcol &
dernier_ligne).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
GoTo fin_wend: '<---------------- je fais à la fin
pour repasser par la condition
' de sortie du
while et sortir de là.
End If
lig_cour_fin = ActiveCell.Row - 1
Range(Pcol & lig_cour_debut & ":" & Pcol & lig_cour_fin).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
fin_wend:
Wend
Merci
Après avoir sélectionné l'ensemble de ton tableau :
Sub Complète_Lignes()
Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[Selection].Value = [Selection].Value
End Sub
Cordialement
FL
"Alfred WALLACE"
FL wrote:
J'ai résolu le pb comme çà :
Selection.End(xlDown).Select
While ActiveCell.Row() < dernier_ligne ' toujours pas fin du tableau
Selection.Copy
lig_cour_debut = ActiveCell.Row 'mémorise la ligne courante
lig_cour de debut
Selection.End(xlDown).Select
If ActiveCell.Row() > dernier_ligne Then
Selection.End(xlUp).Select
Range(Pcol & lig_cour_debut & ":" & Pcol &
dernier_ligne).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
GoTo fin_wend: '<---------------- je fais à la fin
pour repasser par la condition
' de sortie du
while et sortir de là.
End If
lig_cour_fin = ActiveCell.Row - 1
Range(Pcol & lig_cour_debut & ":" & Pcol & lig_cour_fin).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
fin_wend:
Wend
Merci