Microsoft 365 indication du nombre de ligne à impoter

Benjamin42

XLDnaute Nouveau
Bonjour,

J'ai créé un codage pour indiquer le nombre de ligne à importer mais cela me renvoi 0 à chaque fois, vous avez une idée :


' Nombre d'evenements à importer

Dim Fichier As String
Dim Chemin As String
Dim Dernligne As Integer

Dim i As Double
Dim Val As Long

Chemin = ThisWorkbook.Path
Fichier = Chemin & "\[Sas_Temp.xlsx]"

For i = 2 To 100000
Val = ExecuteExcel4Macro("'" & Fichier & "Tableau'!R" & i & "C6")
If Val = 0 Then
Exit For
End If
Next i

Dernligne = i - 2
Evenements.Value = Dernligne
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Benjamin,
Si vous voulez savoir combien de ligne sont présentes dans le fichier Sas_Temp.xlsx essayez cela :
VB:
    Application.ScreenUpdating = False
    Workbooks.Open Filename:=ThisWorkbook.Path & "\Sas_Temp.xlsx"
    Dernligne = Application.CountIf(Sheets("Tableau").Columns("A:A"), "*")
    ActiveWorkbook.Close
 

Pièces jointes

  • Fichier de suivi.xlsm
    26.3 KB · Affichages: 4

Benjamin42

XLDnaute Nouveau
Merci Sylvanu,

Ca marche mais je me rappelle plus pourquoi j'avais mis ce script à l'époque
Si je veux que cela fasse un Couper et coller dans mon fichier suivi, j'ai mis ca mais cela copie seulement 1 ligne, as tu une idée :

Private Sub Import_Click()

Dim Cible As Range
Dim Chemin As String
Dim Val As Integer
Dim i As Integer
Dim Fichier As String

Chemin = ThisWorkbook.Path
'Fichier = Chemin & "\[Sas_Temp.xlsx]"
Workbooks.Open Chemin & "\Sas_Temp.xlsx"
If Range("A2") = 0 Then
Val = 0
Else
Val = 1
End If
If Val > 0 Then
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
' Copie des données
Range("Tableau").Select
Val = Selection.Rows.Count
Selection.Copy
ThisWorkbook.Activate
Sheets("Base").Select
Set Cible = Range("A" & Rows.Count).End(xlUp)
Cible.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Raz du fichier tampon
Windows("Sas_Temp.xlsx").Activate
For i = 1 To Val
Selection.ListObject.ListRows(1).Delete
Next i
ActiveWorkbook.Save
ActiveWorkbook.Close
Else
ActiveWorkbook.Close
ThisWorkbook.Save
Sheets("Base").Select
End If
Evenements.Value = 0
Unload Me
End Sub
 

Discussions similaires