probleme end(XlToRight)

Calimero33

XLDnaute Nouveau
Bonjour je souhaite insérer une nouvelle ligne au dessus de ma ligne sélectionnée en recopiant les formules. Mon problème est que la formule End(xlToright) s'arrête à la première colonne vide or mon tableau continue après. Comment puis-je faire pour trouver la dernière cellule non vide ?

Merci de votre aide :)
 

Calimero33

XLDnaute Nouveau
Re : probleme end(XlToRight)

Voila le code que j'utilise pour inserer une ligne au dessus de la ligne selectionnée. Le problème réside au niveau de la fonction End(XltoRight) que j'ai mis en rouge.

Sub NouvelleLigneAuDessus()
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient

Dim ZtNumLig As Integer
Dim ZtDerCol As Integer

ActiveCell.EntireRow.Insert
ActiveCell.Range("A2").Select
ZtNumLig = ActiveCell.Row
ZtDerCol = Cells(ActiveCell.Row, 1).End(xlToRight).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol))

Application.ScreenUpdating = False
For I = 1 To ZtDerCol
If Not Cells(ZtNumLig - 1, I).HasFormula Then
Cells(ZtNumLig - 1, I).ClearContents
End If
Next I
ActiveCell.Offset(-1, 0).Select
End Sub
 

Calimero33

XLDnaute Nouveau
Re : probleme end(XlToRight)

SAlut, voila le code que j'utilise pour inserer une ligne au dessus de la ligne selectionné. Le problème réside sur la fonction End(xltoright) qui s'arrete à la premiere colonne vide au lieu de s'arreter à la derniere colonne non vide.

Sub NouvelleLigneAuDessus()
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient

Dim ZtNumLig As Integer
Dim ZtDerCol As Integer

ActiveCell.EntireRow.Insert
ActiveCell.Range("A2").Select
ZtNumLig = ActiveCell.Row
ZtDerCol = Cells(ActiveCell.Row, 1).End(xlToRight).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol))

Application.ScreenUpdating = False
For I = 1 To ZtDerCol
If Not Cells(ZtNumLig - 1, I).HasFormula Then
Cells(ZtNumLig - 1, I).ClearContents
End If
Next I
ActiveCell.Offset(-1, 0).Select
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 499
Messages
2 088 999
Membres
104 001
dernier inscrit
dessinbecm