VBA : IF and IF
mikegolden3
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis occupé dans un code VBA et je tourne un peu en rond sur un IF :
Le code consiste a effectuer une rupture (en ajoutant une ligne) des que la valeur entre la ligne 1 et la valeur dans la ligne 1 + 1 est différente.
Avec un seul if, le code tourne en rond puisque le IF retombe sur la ligne qu'il vient de creer et donc crée des lignes apres la premiere rupture.
Je veux donc integrer un deuxieme IF pour qu'il ignore les lignes à "Blank" mais j'ai du mal sur la facon de gerer les deux IF.
Si vous pouviez m'eclairer de vos lumieres ?
Merci d'avance
Voici mon code :
Sub Rupt()
WBName = Application.ActiveWorkbook.Name 'Excel Name
FromWS = "DB CLEAN" 'Source Name Sheet
ToWS = "TO IMPORT ALL" 'Target Name Sheet
iLigneFrom = 3
iLigneTo = 100
For iLigne = iLigneFrom To iLigneTo 'Lines in the source sheet
If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> Workbooks(WBName).Worksheets(ToWS).Cells(iLigne - 1, 18).Value Then
ElseIf Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> "" Then
Workbooks(WBName).Worksheets(ToWS).Rows(iLigne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next
End Sub
Je suis occupé dans un code VBA et je tourne un peu en rond sur un IF :
Le code consiste a effectuer une rupture (en ajoutant une ligne) des que la valeur entre la ligne 1 et la valeur dans la ligne 1 + 1 est différente.
Avec un seul if, le code tourne en rond puisque le IF retombe sur la ligne qu'il vient de creer et donc crée des lignes apres la premiere rupture.
Je veux donc integrer un deuxieme IF pour qu'il ignore les lignes à "Blank" mais j'ai du mal sur la facon de gerer les deux IF.
Si vous pouviez m'eclairer de vos lumieres ?
Merci d'avance
Voici mon code :
Sub Rupt()
WBName = Application.ActiveWorkbook.Name 'Excel Name
FromWS = "DB CLEAN" 'Source Name Sheet
ToWS = "TO IMPORT ALL" 'Target Name Sheet
iLigneFrom = 3
iLigneTo = 100
For iLigne = iLigneFrom To iLigneTo 'Lines in the source sheet
If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> Workbooks(WBName).Worksheets(ToWS).Cells(iLigne - 1, 18).Value Then
ElseIf Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> "" Then
Workbooks(WBName).Worksheets(ToWS).Rows(iLigne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next
End Sub
1 réponse
Bonjour,
essaie ca :
Sub Rupt()
WBName = Application.ActiveWorkbook.Name 'Excel Name
FromWS = "DB CLEAN" 'Source Name Sheet
ToWS = "TO IMPORT ALL" 'Target Name Sheet
iLigneFrom = 3
iLigneTo = 100
For iLigne = iLigneFrom To iLigneTo 'Lines in the source sheet
If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> Workbooks(WBName).Worksheets(ToWS).Cells(iLigne - 1, 18).Value and If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> "" and If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne-1, 18).Value <> "" then
Workbooks(WBName).Worksheets(ToWS).Rows(iLigne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
end if
Next
End Sub
essaie ca :
Sub Rupt()
WBName = Application.ActiveWorkbook.Name 'Excel Name
FromWS = "DB CLEAN" 'Source Name Sheet
ToWS = "TO IMPORT ALL" 'Target Name Sheet
iLigneFrom = 3
iLigneTo = 100
For iLigne = iLigneFrom To iLigneTo 'Lines in the source sheet
If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> Workbooks(WBName).Worksheets(ToWS).Cells(iLigne - 1, 18).Value and If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne, 18).Value <> "" and If Workbooks(WBName).Worksheets(ToWS).Cells(iLigne-1, 18).Value <> "" then
Workbooks(WBName).Worksheets(ToWS).Rows(iLigne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
end if
Next
End Sub