Bonjour
Oui tout a fait
.Range("A65536") est fait pour Excel 2003 ( 65556 ligne)
Pour excel 2007 et après , il y en a plus d'un million (je crois)
Donc rows count est fonctionnel pour n'inporte quel excel
J'ai ajouté ceci, mais je recontre un problème:
il ne vide plus mon fichier dossiers logo paramedicaux
pouvez-vous regarder svp?
Sub transfert()
Workbooks.Open Filename:="K:\319-Qualité\Qualité\Marianne\dossiers soins de santé\DOSSIERS LOGO PARAMEDICAUX.xlsx"
Windows("DOSSIERS LOGO PARAMEDICAUX.xlsx").Activate
' déclaration des variables numériques (as long)
Dim Derligne As Long
Dim DerligneBaseDeDonnées As Long
' Avec Ce Fichier et cette feuille récapitulatif
' désormais le point (.) remplace cet ensemble
With ThisWorkbook.Sheets("RECAPITULATIF")
' je cherche la dernière ligne dans mon fichier Récapitulatif et la décale de deux lignes ( pour avoir une ligne vide)
Derligne = .Range("A" & Rows.Count).End(xlUp).Row + 2
' je mets un message d'erreur au cas où le fichier de données n'est pas ouvert ou le nom est changé
On Error Resume Next
DerligneBaseDeDonnées = Workbooks("DOSSIERS LOGO PARAMEDICAUX.xlsx").Sheets("DONNEES PARAMEDICAUX").Range("A" & Rows.Count).End(xlUp).Row
' s'il y a une erreur je sors du programme
If Err <> 0 Then
MsgBox " le fichier de données n'est pas ouvert ou son nom n'est pas : DOSSIERS LOGO PARAMEDICAUX.xlsx ou la feuille de données ne se nomme pas : DONNEES PARAMEDICAUX"
Exit Sub
End If
' si dans la feuille de données, la cellule A2 n'est pas documentée ( pas de données à transférer) , je sors du programme
If Workbooks("DOSSIERS LOGO PARAMEDICAUX.xlsx").Sheets("DONNEES PARAMEDICAUX").Range("A2") = "" Then Exit Sub
' je copie les données de la feuille données vers la feuille récap
Workbooks("DOSSIERS LOGO PARAMEDICAUX.xlsx").Sheets("DONNEES PARAMEDICAUX").Range("A2:I" & DerligneBaseDeDonnées).Copy Destination:=.Range("A" & Derligne)
' Je vide la feuille de données après transfert
Workbooks("DOSSIERS LOGO PARAMEDICAUX.xlsx").Sheets("DONNEES PARAMEDICAUX").Range("A2:I" & DerligneBaseDeDonnées) = ""
' je colorie la ligne vide en gris
.Range("A" & Derligne - 1 & ":I" & Derligne - 1).Interior.ThemeColor = xlThemeColorDark1
.Range("A" & Derligne - 1 & ":I" & Derligne - 1).Interior.TintAndShade = -0.149998474074526
Workbooks("DOSSIERS LOGO PARAMEDICAUX.xlsx").Close False
End With
End Sub