Bonjour,
La procédure soumise retourne la première ligne disponible d'une feuille de
calcul Excel d'un classeur fermé. Avant de lancer la procédure, prends le
temps de lire les remarques de la procédure
"Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()"
Évidemment, l'exécution de cette procédure requiert l'ajout de la
bibliothèque suivante : "Microsoft ActiveX Data Objects 2.8 Library" à partir
de la barre des menus de la fenêtre de l'éditeur de code (VBA) / Outils /
références.
'-------------------------------------------------------------------------
Sub Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()
'Inspirer d'une procédure créer par keiji kounoike
Dim SsourceData As String
Dim Table1 As String
'*************VARIABLES À DÉFINIR*****************
'Répertoire de ton fichier fermé
SsourceData = "c:UsersTon ProfilDocumentsClasseur1.xlsm"
'Nom de la feuille est la plage de cellules concernées
Table1 = "[Feuil1$A:F]"
'***************************************************
'Le résultat suppose que la ligne 1 est la première ligne
'de données de ton tableau des données. Si tu indiques un
'tableau des données de ce type : "[Feuil1$A4:F500]", tu
'devras ajouter 3 au résultat représentant les 3
'premières lignes pour obtenir la première ligne disponible
'dans ta feuille de calcul.
MsgBox "La dernière ligne du tableau de données est : " & _
GetLastRow(SsourceData, Table1)
End Sub
'-------------------------------------------------------------------------
Function GetLastRow(ByVal Fname As String, _
ByVal TableName As String) As Long
Dim Flawed As Boolean, i As Long
Dim Conn As ADODB.Connection, Rst As ADODB.Recordset
Set Conn = New ADODB.Connection
If Val(Application.Version) <= 11 Then
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Else
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
End If
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.Open TableName, Conn, adOpenStatic
Rst.MoveLast
Flawed = True
Do While (Flawed)
For i = 0 To Rst.Fields.Count - 1
If Not IsNull(Rst.Fields(i).Value) Then
Flawed = False
Exit Do
End If
Next
Rst.MovePrevious
Loop
GetLastRow = Rst.AbsolutePosition + 1
Rst.Close: Conn.Close
Set Conn = Nothing: Set Rst = Nothing
End Function
'-------------------------------------------------------------------------
MichD
Bonjour,
La procédure soumise retourne la première ligne disponible d'une feuille de
calcul Excel d'un classeur fermé. Avant de lancer la procédure, prends le
temps de lire les remarques de la procédure
"Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()"
Évidemment, l'exécution de cette procédure requiert l'ajout de la
bibliothèque suivante : "Microsoft ActiveX Data Objects 2.8 Library" à partir
de la barre des menus de la fenêtre de l'éditeur de code (VBA) / Outils /
références.
'-------------------------------------------------------------------------
Sub Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()
'Inspirer d'une procédure créer par keiji kounoike
Dim SsourceData As String
Dim Table1 As String
'*************VARIABLES À DÉFINIR*****************
'Répertoire de ton fichier fermé
SsourceData = "c:UsersTon ProfilDocumentsClasseur1.xlsm"
'Nom de la feuille est la plage de cellules concernées
Table1 = "[Feuil1$A:F]"
'***************************************************
'Le résultat suppose que la ligne 1 est la première ligne
'de données de ton tableau des données. Si tu indiques un
'tableau des données de ce type : "[Feuil1$A4:F500]", tu
'devras ajouter 3 au résultat représentant les 3
'premières lignes pour obtenir la première ligne disponible
'dans ta feuille de calcul.
MsgBox "La dernière ligne du tableau de données est : " & _
GetLastRow(SsourceData, Table1)
End Sub
'-------------------------------------------------------------------------
Function GetLastRow(ByVal Fname As String, _
ByVal TableName As String) As Long
Dim Flawed As Boolean, i As Long
Dim Conn As ADODB.Connection, Rst As ADODB.Recordset
Set Conn = New ADODB.Connection
If Val(Application.Version) <= 11 Then
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Else
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
End If
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.Open TableName, Conn, adOpenStatic
Rst.MoveLast
Flawed = True
Do While (Flawed)
For i = 0 To Rst.Fields.Count - 1
If Not IsNull(Rst.Fields(i).Value) Then
Flawed = False
Exit Do
End If
Next
Rst.MovePrevious
Loop
GetLastRow = Rst.AbsolutePosition + 1
Rst.Close: Conn.Close
Set Conn = Nothing: Set Rst = Nothing
End Function
'-------------------------------------------------------------------------
MichD
Bonjour,
La procédure soumise retourne la première ligne disponible d'une feuille de
calcul Excel d'un classeur fermé. Avant de lancer la procédure, prends le
temps de lire les remarques de la procédure
"Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()"
Évidemment, l'exécution de cette procédure requiert l'ajout de la
bibliothèque suivante : "Microsoft ActiveX Data Objects 2.8 Library" à partir
de la barre des menus de la fenêtre de l'éditeur de code (VBA) / Outils /
références.
'-------------------------------------------------------------------------
Sub Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()
'Inspirer d'une procédure créer par keiji kounoike
Dim SsourceData As String
Dim Table1 As String
'*************VARIABLES À DÉFINIR*****************
'Répertoire de ton fichier fermé
SsourceData = "c:UsersTon ProfilDocumentsClasseur1.xlsm"
'Nom de la feuille est la plage de cellules concernées
Table1 = "[Feuil1$A:F]"
'***************************************************
'Le résultat suppose que la ligne 1 est la première ligne
'de données de ton tableau des données. Si tu indiques un
'tableau des données de ce type : "[Feuil1$A4:F500]", tu
'devras ajouter 3 au résultat représentant les 3
'premières lignes pour obtenir la première ligne disponible
'dans ta feuille de calcul.
MsgBox "La dernière ligne du tableau de données est : " & _
GetLastRow(SsourceData, Table1)
End Sub
'-------------------------------------------------------------------------
Function GetLastRow(ByVal Fname As String, _
ByVal TableName As String) As Long
Dim Flawed As Boolean, i As Long
Dim Conn As ADODB.Connection, Rst As ADODB.Recordset
Set Conn = New ADODB.Connection
If Val(Application.Version) <= 11 Then
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Else
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
End If
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.Open TableName, Conn, adOpenStatic
Rst.MoveLast
Flawed = True
Do While (Flawed)
For i = 0 To Rst.Fields.Count - 1
If Not IsNull(Rst.Fields(i).Value) Then
Flawed = False
Exit Do
End If
Next
Rst.MovePrevious
Loop
GetLastRow = Rst.AbsolutePosition + 1
Rst.Close: Conn.Close
Set Conn = Nothing: Set Rst = Nothing
End Function
'-------------------------------------------------------------------------
MichD
Bonjour,
La procédure soumise retourne la première ligne disponible d'une feuille
de calcul Excel d'un classeur fermé. Avant de lancer la procédure, prends
le temps de lire les remarques de la procédure
"Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()"
Évidemment, l'exécution de cette procédure requiert l'ajout de la
bibliothèque suivante : "Microsoft ActiveX Data Objects 2.8 Library" à
partir de la barre des menus de la fenêtre de l'éditeur de code (VBA) /
Outils / références.
'-------------------------------------------------------------------------
Sub Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()
'Inspirer d'une procédure créer par keiji kounoike
Dim SsourceData As String
Dim Table1 As String
'*************VARIABLES À DÉFINIR*****************
'Répertoire de ton fichier fermé
SsourceData = "c:UsersTon ProfilDocumentsClasseur1.xlsm"
'Nom de la feuille est la plage de cellules concernées
Table1 = "[Feuil1$A:F]"
'***************************************************
'Le résultat suppose que la ligne 1 est la première ligne
'de données de ton tableau des données. Si tu indiques un
'tableau des données de ce type : "[Feuil1$A4:F500]", tu
'devras ajouter 3 au résultat représentant les 3
'premières lignes pour obtenir la première ligne disponible
'dans ta feuille de calcul.
MsgBox "La dernière ligne du tableau de données est : " & _
GetLastRow(SsourceData, Table1)
End Sub
'-------------------------------------------------------------------------
Function GetLastRow(ByVal Fname As String, _
ByVal TableName As String) As Long
Dim Flawed As Boolean, i As Long
Dim Conn As ADODB.Connection, Rst As ADODB.Recordset
Set Conn = New ADODB.Connection
If Val(Application.Version) <= 11 Then
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Else
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
End If
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.Open TableName, Conn, adOpenStatic
Rst.MoveLast
Flawed = True
Do While (Flawed)
For i = 0 To Rst.Fields.Count - 1
If Not IsNull(Rst.Fields(i).Value) Then
Flawed = False
Exit Do
End If
Next
Rst.MovePrevious
Loop
GetLastRow = Rst.AbsolutePosition + 1
Rst.Close: Conn.Close
Set Conn = Nothing: Set Rst = Nothing
End Function
'-------------------------------------------------------------------------
MichD
Bonjour,
La procédure soumise retourne la première ligne disponible d'une feuille
de calcul Excel d'un classeur fermé. Avant de lancer la procédure, prends
le temps de lire les remarques de la procédure
"Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()"
Évidemment, l'exécution de cette procédure requiert l'ajout de la
bibliothèque suivante : "Microsoft ActiveX Data Objects 2.8 Library" à
partir de la barre des menus de la fenêtre de l'éditeur de code (VBA) /
Outils / références.
'-------------------------------------------------------------------------
Sub Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()
'Inspirer d'une procédure créer par keiji kounoike
Dim SsourceData As String
Dim Table1 As String
'*************VARIABLES À DÉFINIR*****************
'Répertoire de ton fichier fermé
SsourceData = "c:UsersTon ProfilDocumentsClasseur1.xlsm"
'Nom de la feuille est la plage de cellules concernées
Table1 = "[Feuil1$A:F]"
'***************************************************
'Le résultat suppose que la ligne 1 est la première ligne
'de données de ton tableau des données. Si tu indiques un
'tableau des données de ce type : "[Feuil1$A4:F500]", tu
'devras ajouter 3 au résultat représentant les 3
'premières lignes pour obtenir la première ligne disponible
'dans ta feuille de calcul.
MsgBox "La dernière ligne du tableau de données est : " & _
GetLastRow(SsourceData, Table1)
End Sub
'-------------------------------------------------------------------------
Function GetLastRow(ByVal Fname As String, _
ByVal TableName As String) As Long
Dim Flawed As Boolean, i As Long
Dim Conn As ADODB.Connection, Rst As ADODB.Recordset
Set Conn = New ADODB.Connection
If Val(Application.Version) <= 11 Then
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Else
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
End If
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.Open TableName, Conn, adOpenStatic
Rst.MoveLast
Flawed = True
Do While (Flawed)
For i = 0 To Rst.Fields.Count - 1
If Not IsNull(Rst.Fields(i).Value) Then
Flawed = False
Exit Do
End If
Next
Rst.MovePrevious
Loop
GetLastRow = Rst.AbsolutePosition + 1
Rst.Close: Conn.Close
Set Conn = Nothing: Set Rst = Nothing
End Function
'-------------------------------------------------------------------------
MichD
Bonjour,
La procédure soumise retourne la première ligne disponible d'une feuille
de calcul Excel d'un classeur fermé. Avant de lancer la procédure, prends
le temps de lire les remarques de la procédure
"Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()"
Évidemment, l'exécution de cette procédure requiert l'ajout de la
bibliothèque suivante : "Microsoft ActiveX Data Objects 2.8 Library" à
partir de la barre des menus de la fenêtre de l'éditeur de code (VBA) /
Outils / références.
'-------------------------------------------------------------------------
Sub Dernière_LIgne_Plage_De_Données_Ds_Classeur_Fermé()
'Inspirer d'une procédure créer par keiji kounoike
Dim SsourceData As String
Dim Table1 As String
'*************VARIABLES À DÉFINIR*****************
'Répertoire de ton fichier fermé
SsourceData = "c:UsersTon ProfilDocumentsClasseur1.xlsm"
'Nom de la feuille est la plage de cellules concernées
Table1 = "[Feuil1$A:F]"
'***************************************************
'Le résultat suppose que la ligne 1 est la première ligne
'de données de ton tableau des données. Si tu indiques un
'tableau des données de ce type : "[Feuil1$A4:F500]", tu
'devras ajouter 3 au résultat représentant les 3
'premières lignes pour obtenir la première ligne disponible
'dans ta feuille de calcul.
MsgBox "La dernière ligne du tableau de données est : " & _
GetLastRow(SsourceData, Table1)
End Sub
'-------------------------------------------------------------------------
Function GetLastRow(ByVal Fname As String, _
ByVal TableName As String) As Long
Dim Flawed As Boolean, i As Long
Dim Conn As ADODB.Connection, Rst As ADODB.Recordset
Set Conn = New ADODB.Connection
If Val(Application.Version) <= 11 Then
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Else
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Fname & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
End If
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.Open TableName, Conn, adOpenStatic
Rst.MoveLast
Flawed = True
Do While (Flawed)
For i = 0 To Rst.Fields.Count - 1
If Not IsNull(Rst.Fields(i).Value) Then
Flawed = False
Exit Do
End If
Next
Rst.MovePrevious
Loop
GetLastRow = Rst.AbsolutePosition + 1
Rst.Close: Conn.Close
Set Conn = Nothing: Set Rst = Nothing
End Function
'-------------------------------------------------------------------------
MichD