Y a-t-il un bug avec "UsedRange.Rows.Count"

Guy_M

XLDnaute Occasionnel
Bonjour,

J'ai écrit cette boucle :
VB:
For Each Feuille In ActiveWorkbook.Worksheets 'Parcourt toutes les feuilles
   If Feuille.Name <> PremiereFeuille.Name Then 'copie le contenu de chaque feuille sauf la première
       Feuille.UsedRange.Copy
        PremiereFeuille.Paste Destination:=PremiereFeuille.Range("A" & PremiereFeuille.UsedRange.Rows.Count + 1)
    End If
Next

Après certaines copies (une feuille avec des images et une cellule fusionnée), PremiereFeuille.UsedRange.Rows.Count ne retourne pas la bonne valeur. Avez-vous rencontré ce problème ?

Par avance, je vous remercie de vos réponses.

A bientôt
Guy Marty
PS : pour contourner ce problème j'ai remplacé "UsedRange.Rows.Count" par "UsedRange.SpecialCells(xlCellTypeLastCell).Row"
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour,

J'ai écrit cette boucle :
VB:
For Each Feuille In ActiveWorkbook.Worksheets 'Parcourt toutes les feuilles
   If Feuille.Name <> PremiereFeuille.Name Then 'copie le contenu de chaque feuille sauf la première
       Feuille.UsedRange.Copy
        PremiereFeuille.Paste Destination:=PremiereFeuille.Range("A" & PremiereFeuille.UsedRange.Rows.Count + 1)
    End If
Next

Après certaines copies (une feuille avec des images et une cellule fusionnée), PremiereFeuille.UsedRange.Rows.Count ne retourne pas la bonne valeur. Avez-vous rencontré ce problème ?

Par avance, je vous remercie de vos réponses.

A bientôt
Guy Marty
PS : pour contourner ce problème j'ai remplacé "UsedRange.Rows.Count" par "UsedRange.SpecialCells(xlCellTypeLastCell).Row"

UsedRange n'est rafraîchi que lorsque du Workbook.Save
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour Modeste geedee,
Donc cela veut-il dire que "Feuille.UsedRange.Copy" ne copie pas nécessairement toutes les cellules de la feuille ?
A bientôt
Guy
Je ne saurai, l'affirmer... ???
Mais "Bydesign" Excel se contente-t-il dans ce cas de ne copier que la plage dans laquelle une cellule a été modifiée ???

à tester :
upload_2017-4-4_20-45-16.png

sur une feuille vierge accéder à la cellule IV12345
1 - saisir un texte quelconque, effacer ce texte
UsedRange .Select
noter le résultat
Workbook.save
UsedRange.select
noter le résultat

2 - saisir un texte quelconque, Changer la couleur de police, effacer ce texte
UsedRange .Select
noter le résultat
Workbook.save
UsedRange.select
noter le résultat
Supprimer la cellule
Workbook.save
Usedrange.select
Noter le résultat
 

Statistiques des forums

Discussions
312 203
Messages
2 086 192
Membres
103 152
dernier inscrit
Karibu