Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

insertion de ligne excel vba

1 réponse
Avatar
franck B
bonjour à tous,

je procède à un import, pour lequel je rajoute des lignes en fin de tableau
pour completer l'existant. il y a plusieurs tableaux les uns en dessous des
autres, et je teste la fin de tableau pour ajouter des lignes.

dans mon code, j'ai rajouté le test, mais le rajout de ligne se fait à
l'interieur de mon tableau, et non à la fin. voici le code que j'ai produit


Sub import_InOut()
Dim oExcel As Excel.Application
Dim oWk As Workbook
Set oExcel = CreateObject("Excel.Application")
On Error Resume Next 'Pour éviter les erreur si classeur n'existe pas
Set oWk = oExcel.Workbooks.Open(ThisWorkbook.Path & "\In & Out graph
V2.txt")
On Error GoTo 0
If oWk Is Nothing Then
MsgBox "Erreur sur l'ouverture du classeur", vbCritical
Exit Sub
End If

i = 1
j = 1
k = 1
vi = 1
vii = 1

'recherhche du code projet sur lequel on va mettre à jour les charges
While ThisWorkbook.Sheets("BalanceInOut").Cells(i, 1) <>
Cockpit.cp_import_InOut.Value
i = i + 1
j = j + 1
k = j
Wend
'********************************************************************

'recherche des tickets assistance pour le code projet extrait de BO
While oWk.Sheets("In & Out graph V2").Cells(vi, 1) <> "ASSIS"
vi = vi + 1
Wend
'********************************************************************
vi = vi + 7
While oWk.Sheets("In & Out graph V2").Cells(vi, 1) <> ""
Sheets("BalanceInOut").Cells(j + 1, 2) = oWk.Sheets("In & Out graph
V2").Cells(vi, 1) 'n° de semaine récupérée
Sheets("BalanceInOut").Cells(j + 1, 3) = oWk.Sheets("In & Out graph
V2").Cells(vi, 2) 'ano assist crée
Sheets("BalanceInOut").Cells(j + 1, 6) = oWk.Sheets("In & Out graph
V2").Cells(vi, 3) 'ano assist resolue
j = j + 1
vi = vi + 1
Wend
'********************************************************************

'recherche des tickets maintenance pour le code projet extrait de BO
While oWk.Sheets("In & Out graph V2").Cells(vii, 1) <> "MAINT"
vii = vii + 1
Wend
'********************************************************************
vii = vii + 7
While oWk.Sheets("In & Out graph V2").Cells(vii, 1) <> ""
Sheets("BalanceInOut").Cells(k + 1, 4) = oWk.Sheets("In & Out graph
V2").Cells(vii, 2) 'ano maint crée
Sheets("BalanceInOut").Cells(k + 1, 7) = oWk.Sheets("In & Out graph
V2").Cells(vii, 3) 'ano maint resolue
k = k + 1
vii = vii + 1
Wend

'fermeture du fichier import et incription du chemin d'accès
Set oWk = Nothing
Sheets("Paramètres").Cells(1, 2) = ThisWorkbook.Path & "\In & Out graph
V2.txt"
MsgBox "Importation des données pour " & Cockpit.cp_import_InOut.Value & "
terminée", vbInformation

End Sub

Sub import_courbe_S()
Dim oExcel As Excel.Application
Dim oWk As Workbook
Set oExcel = CreateObject("Excel.Application")
On Error Resume Next 'Pour éviter les erreur si classeur n'existe pas
Set oWk = oExcel.Workbooks.Open(ThisWorkbook.Path & "\Operational report
- detailed loads V4.txt")
On Error GoTo 0
If oWk Is Nothing Then
MsgBox "Erreur sur l'ouverture du classeur", vbCritical
Exit Sub
End If

i = 1
j = 1
k = 1
vi = 1
vii = 1

'recherhche de la zone du code projet sur lequel on va mettre à jour les
charges
While ThisWorkbook.Sheets("Courbe en S").Cells(i, 2) <> "Initial tickets
Loads" And ThisWorkbook.Sheets("Courbe en S").Cells(i + 1, 2) <>
Cockpit.cp_import_courbeS.Value
i = i + 1
j = j + 1
k = j
Wend
'********************************************************************

'recherche des charges initiales pour le code projet extrait de BO
While oWk.Sheets("Operational report - detailed l").Cells(vi, 1) <> "Initial
tickets Loads"
vi = vi + 1
Wend
'********************************************************************
vi = vi + 3
While oWk.Sheets("Operational report - detailed l").Cells(vi, 1) <> ""

If Sheets("Courbe en S").Cells(j + 3, 2) = "" Then _
Sheets("Courbe en S").Select
Range(Sheets("Courbe en S").Cells(j + 3, 1), Sheets("Courbe en
S").Cells(j + 3, 19)).Insert xlShiftDown
j = j + 1

Sheets("Courbe en S").Cells(j + 3, 2) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 1) 'n° de semaine récupérée
Sheets("Courbe en S").Cells(j + 3, 4) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 3) 'charge assist priorité low
Sheets("Courbe en S").Cells(j + 3, 5) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 4) 'charge maint priorité low
Sheets("Courbe en S").Cells(j + 3, 6) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 5) 'charge evol priorité low
Sheets("Courbe en S").Cells(j + 3, 7) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 6) 'charge proj priorité low
Sheets("Courbe en S").Cells(j + 3, 8) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 7)
Sheets("Courbe en S").Cells(j + 3, 9) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 8) 'charge assist priorité medium
Sheets("Courbe en S").Cells(j + 3, 10) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 9) 'charge maint priorité medium
Sheets("Courbe en S").Cells(j + 3, 11) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 10) 'charge evol priorité medium
Sheets("Courbe en S").Cells(j + 3, 12) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 11) 'charge proj priorité medium
Sheets("Courbe en S").Cells(j + 3, 13) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 12)
Sheets("Courbe en S").Cells(j + 3, 14) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 13) 'charge assist priorité high
Sheets("Courbe en S").Cells(j + 3, 15) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 14) 'charge maint priorité high
Sheets("Courbe en S").Cells(j + 3, 16) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 15) 'charge evol priorité high
Sheets("Courbe en S").Cells(j + 3, 17) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 16) 'charge proj priorité high
Sheets("Courbe en S").Cells(j + 3, 18) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 17)

j = j + 1
vi = vi + 1
Wend
'********************************************************************

si quelqu'un voit la faille , qu'il n'hésite pas

1 réponse

Avatar
franck B
finalement, j'ai trouvé la solution.

le probleme résidait dans la colone selectionée pour le test, et la fin de
boucle
voici donc le morceau de code qui débloque ma situation

If Sheets("Courbe en S").Cells(l, 2) = "" Then
Sheets("Courbe en S").Select
Range(Sheets("Courbe en S").Cells(l, 1), Sheets("Courbe en S").Cells(l,
19)).Insert xlShiftDown
l = l + 1
End If


bonjour à tous,

je procède à un import, pour lequel je rajoute des lignes en fin de tableau
pour completer l'existant. il y a plusieurs tableaux les uns en dessous des
autres, et je teste la fin de tableau pour ajouter des lignes.

dans mon code, j'ai rajouté le test, mais le rajout de ligne se fait à
l'interieur de mon tableau, et non à la fin. voici le code que j'ai produit


Sub import_InOut()
Dim oExcel As Excel.Application
Dim oWk As Workbook
Set oExcel = CreateObject("Excel.Application")
On Error Resume Next 'Pour éviter les erreur si classeur n'existe pas
Set oWk = oExcel.Workbooks.Open(ThisWorkbook.Path & "In & Out graph
V2.txt")
On Error GoTo 0
If oWk Is Nothing Then
MsgBox "Erreur sur l'ouverture du classeur", vbCritical
Exit Sub
End If

i = 1
j = 1
k = 1
vi = 1
vii = 1

'recherhche du code projet sur lequel on va mettre à jour les charges
While ThisWorkbook.Sheets("BalanceInOut").Cells(i, 1) <>
Cockpit.cp_import_InOut.Value
i = i + 1
j = j + 1
k = j
Wend
'********************************************************************

'recherche des tickets assistance pour le code projet extrait de BO
While oWk.Sheets("In & Out graph V2").Cells(vi, 1) <> "ASSIS"
vi = vi + 1
Wend
'********************************************************************
vi = vi + 7
While oWk.Sheets("In & Out graph V2").Cells(vi, 1) <> ""
Sheets("BalanceInOut").Cells(j + 1, 2) = oWk.Sheets("In & Out graph
V2").Cells(vi, 1) 'n° de semaine récupérée
Sheets("BalanceInOut").Cells(j + 1, 3) = oWk.Sheets("In & Out graph
V2").Cells(vi, 2) 'ano assist crée
Sheets("BalanceInOut").Cells(j + 1, 6) = oWk.Sheets("In & Out graph
V2").Cells(vi, 3) 'ano assist resolue
j = j + 1
vi = vi + 1
Wend
'********************************************************************

'recherche des tickets maintenance pour le code projet extrait de BO
While oWk.Sheets("In & Out graph V2").Cells(vii, 1) <> "MAINT"
vii = vii + 1
Wend
'********************************************************************
vii = vii + 7
While oWk.Sheets("In & Out graph V2").Cells(vii, 1) <> ""
Sheets("BalanceInOut").Cells(k + 1, 4) = oWk.Sheets("In & Out graph
V2").Cells(vii, 2) 'ano maint crée
Sheets("BalanceInOut").Cells(k + 1, 7) = oWk.Sheets("In & Out graph
V2").Cells(vii, 3) 'ano maint resolue
k = k + 1
vii = vii + 1
Wend

'fermeture du fichier import et incription du chemin d'accès
Set oWk = Nothing
Sheets("Paramètres").Cells(1, 2) = ThisWorkbook.Path & "In & Out graph
V2.txt"
MsgBox "Importation des données pour " & Cockpit.cp_import_InOut.Value & "
terminée", vbInformation

End Sub

Sub import_courbe_S()
Dim oExcel As Excel.Application
Dim oWk As Workbook
Set oExcel = CreateObject("Excel.Application")
On Error Resume Next 'Pour éviter les erreur si classeur n'existe pas
Set oWk = oExcel.Workbooks.Open(ThisWorkbook.Path & "Operational report
- detailed loads V4.txt")
On Error GoTo 0
If oWk Is Nothing Then
MsgBox "Erreur sur l'ouverture du classeur", vbCritical
Exit Sub
End If

i = 1
j = 1
k = 1
vi = 1
vii = 1

'recherhche de la zone du code projet sur lequel on va mettre à jour les
charges
While ThisWorkbook.Sheets("Courbe en S").Cells(i, 2) <> "Initial tickets
Loads" And ThisWorkbook.Sheets("Courbe en S").Cells(i + 1, 2) <>
Cockpit.cp_import_courbeS.Value
i = i + 1
j = j + 1
k = j
Wend
'********************************************************************

'recherche des charges initiales pour le code projet extrait de BO
While oWk.Sheets("Operational report - detailed l").Cells(vi, 1) <> "Initial
tickets Loads"
vi = vi + 1
Wend
'********************************************************************
vi = vi + 3
While oWk.Sheets("Operational report - detailed l").Cells(vi, 1) <> ""

If Sheets("Courbe en S").Cells(j + 3, 2) = "" Then _
Sheets("Courbe en S").Select
Range(Sheets("Courbe en S").Cells(j + 3, 1), Sheets("Courbe en
S").Cells(j + 3, 19)).Insert xlShiftDown
j = j + 1

Sheets("Courbe en S").Cells(j + 3, 2) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 1) 'n° de semaine récupérée
Sheets("Courbe en S").Cells(j + 3, 4) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 3) 'charge assist priorité low
Sheets("Courbe en S").Cells(j + 3, 5) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 4) 'charge maint priorité low
Sheets("Courbe en S").Cells(j + 3, 6) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 5) 'charge evol priorité low
Sheets("Courbe en S").Cells(j + 3, 7) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 6) 'charge proj priorité low
Sheets("Courbe en S").Cells(j + 3, 8) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 7)
Sheets("Courbe en S").Cells(j + 3, 9) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 8) 'charge assist priorité medium
Sheets("Courbe en S").Cells(j + 3, 10) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 9) 'charge maint priorité medium
Sheets("Courbe en S").Cells(j + 3, 11) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 10) 'charge evol priorité medium
Sheets("Courbe en S").Cells(j + 3, 12) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 11) 'charge proj priorité medium
Sheets("Courbe en S").Cells(j + 3, 13) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 12)
Sheets("Courbe en S").Cells(j + 3, 14) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 13) 'charge assist priorité high
Sheets("Courbe en S").Cells(j + 3, 15) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 14) 'charge maint priorité high
Sheets("Courbe en S").Cells(j + 3, 16) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 15) 'charge evol priorité high
Sheets("Courbe en S").Cells(j + 3, 17) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 16) 'charge proj priorité high
Sheets("Courbe en S").Cells(j + 3, 18) = oWk.Sheets("Operational report -
detailed l").Cells(vi, 17)

j = j + 1
vi = vi + 1
Wend
'********************************************************************

si quelqu'un voit la faille , qu'il n'hésite pas