Fonction "SI " et "GAUCHE" dans VBA
Bonsoir chers tous ,
depuis plusieurs heure je suis planté a inserer une fonction "si" et "gauche" dans un code VBA .
en effet je veux inserer une fonction "si" dans un code qui insere deux ligne (dessus et dessous) et recopie des données
voici le code:
Sub InsererLignes()
Dim dl As Integer, i As Integer, j As Integer
With Sheets("Feuil1")
'insérer lignes vides''''
dl = Cells(Rows.Count, 1).End(xlUp).Row
For i = dl To 2 Step -1
Rows(i).Insert
Rows(i + 1).Insert
Next i
'recopie les valeurs
dl = .Range("A" & Rows.Count).End(xlUp).Row
For j = 4 To dl Step 3
Rows(j).Font.Bold = True 'met ligne en gras
'ligne du dessus
.Cells(j - 1, 1) = .Cells(j, 1).Value 'nopiece
.Cells(j - 1, 2) = "" '.Cells(j, 2).Value 'compte
.Cells(j - 1, 3) = .Cells(j, 3).Value 'codejournee
.Cells(j - 1, 4) = .Cells(j, 4).Value 'date
.Cells(j - 1, 5) = "" 'cells(j, 5).Value 'debit
.Cells(j - 1, 6) = .Cells(j, 5).Value 'credit
.Cells(j - 1, 7) = .Cells(j, 7).Value 'libellé
.Cells(j - 1, 9) = "" 'cells(j,9).Value 'plan analytique
.Cells(j - 1, 10) = "" 'cells(j,10).Value 'section analutique
.Cells(j - 1, 11) = .Cells(j, 11).Value 'type
'ligne du dessous
.Cells(j + 1, 1) = .Cells(j, 1).Value
.Cells(j + 1, 2) = .Cells(j, 2).Value
.Cells(j + 1, 3) = .Cells(j, 3).Value
.Cells(j + 1, 4) = .Cells(j, 4).Value
[color=#FF0000].Cells(j + 1, 5) = "" '.Cells(j, 5).Value[/color]
[color=#FF0000] .Cells(j + 1, 6) = "" 'Cells(j, 6).Value[/color]
.Cells(j + 1, 7) = .Cells(j, 7).Value
.Cells(j + 1, 9) = .Cells(j, 9).Value
.Cells(j + 1, 10) = .Cells(j, 10).Value
.Cells(j + 1, 11) = "A" 'Cells(j, 10).Value
'
''effacer colonne J site
.Cells(j, 10) = ""
Next j
'supprimer 2ème ligne
.Rows(2).Delete
'
''effacer colonne J site
.Cells(j, 9) = ""
'supprimer 2ème ligne
.Rows(2).Delete
End With
End Subcatho
la fonction si doit etre inserer au niveau des recopie des valeur dans la ligne(colonne debit et credit) inserée en dessous (ligne rouge dans le code) et selon les conditions suivante :
si le premier chiffre(gauche(Bi;1) de la cellule compte de la meme ligne est a inferieurs a 6 alors "0" sinon copier la valeur de la cellule au dessus.
cette condition doit etre ajouter dans les deux ligne en rouge dans le code.
voir aussi le fichier si joint et le code pour mieux comprendre
merci davance atous
Cordialement
Bonjour,
Une explication ci-dessous :
If CInt(Left("La cellule à copier", 1)) < 6 Then "Ton autre cellule" = 0 Else "Ton autre cellule" = "La cellule à copier"