VBA : IF and IF
mikegolden3
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
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
A voir également:
- VBA : IF and IF
- Excel compter cellule couleur sans vba - Guide
- Vba sleep ✓ - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Excel
- Autofill vba ✓ - Forum Excel
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