XL 2016 incompatibilité de type

sive91

XLDnaute Junior
Bonjour je ne comprend pas pourquoi j'ai cette erreur
VB:
If Sheets("DIFFERENCE_PA").Range("B" & Lg2) = "*" _
Then Sheets("DIFFERENCE_PA").Rows(Lg2).Delete

Merci
 

sive91

XLDnaute Junior
Voici le Code du bouton
VB:
Private Sub CommandButton4_Click()

Application.ScreenUpdating = False
Dim Lg2 As Integer

Worksheets("DIFFERENCE_PA").Range("A:B").Clear


For Lg2 = Sheets("SERIEM").UsedRange.Rows.Count To 2 Step -1
Worksheets("SERIEM").Range("S" & Lg2).Value = "=IF(ISNA(VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],7,FALSE)/VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],6,FALSE)/RC[-8]),""*"",VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],7,FALSE)/VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],6,FALSE)/RC[-8])"
Sheets("SERIEM").Columns("G:G").Copy Sheets("DIFFERENCE_PA").Columns(1)
Sheets("SERIEM").Columns("S:S").Copy Sheets("DIFFERENCE_PA").Columns(2)

If Sheets("DIFFERENCE_PA").Range("B" & Lg2) = "*" _
Then Sheets("DIFFERENCE_PA").Rows(Lg2).Delete
Next Lg2

End Sub

Si ca ne suffit pas je joindrais le fichier ce soir,
Merci encore
 

Si...

XLDnaute Barbatruc
re

En jetant un coup d'œil à ton fichier : le problème vient du code qui est écrit dans une feuille (celle du boton) qui ne correspond ni à la Source ni à la Cible.

Essaie

Private Sub CommandButton4_Click()
Application.ScreenUpdating = False
Dim L As Integer, Lg2 As Long, De As Worksheet
Set De = Sheets("SERIEM") ‘source
With Worksheets("DIFFERENCE_PA") ‘Cible
.[A:B].Clear
L = De.UsedRange.Rows.Count
For Lg2 = L To 2 Step -1
De.Range("S" & Lg2).Value = "=IF(ISNA(VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],7,FALSE)/VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],6,FALSE)/RC[-8]),""-"",VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],7,FALSE)/VLOOKUP(RC[-13],BL_EPURE!C[-16]:C[4],6,FALSE)/RC[-8])"
Next
De.Columns(7).Copy .Columns(1)
.Columns(2).Resize(L) = De.Columns(19).Value
For Lg2 = L To 2 Step -1
If .Cells(Lg2, 2) = "-" Then .Rows(Lg2).Delete
Next
End With
End Sub

J’ai supposé que tu voulais copier les valeurs et non les formules (pas adaptées à la cible)

Désolé pour le code mais je n'arrive plus à Insérer... :mad:
 

laetitia90

XLDnaute Barbatruc
bonsoir toutes :):)& tous:):)
apporte rien au post Sorry:(
plus active sur le forum depuis quelques mois... plus le temps......
seulement pour faire un bisous :):) a mon ami SI
a+ leti
ps: ton code bien peut resoudre le pb... a mon avis enfin ....SI ....:D j'ai bien compris la demande ;)
 

sive91

XLDnaute Junior
Bonjour

Merci a tous voici la solution

VB:
Worksheets("SERIEM").Range("G2:G" & Lg).Copy Worksheets("PA").Range("A2")
Worksheets("SERIEM").Range("S2:S" & Lg) = Worksheets("SERIEM").Range("S2:S" & Lg).Value
Worksheets("SERIEM").Range("S2:S" & Lg).Copy Worksheets("PA").Range("B2")

If Sheets("PA").Range("B" & Lg) = "*" _
Then Sheets("PA").Rows(Lg).Delete

Ma ligne retournait une formule incompatible avec Integer, du coup j'ai transformé la formule en valeur avant la copie
Worksheets("SERIEM").Range("S2:S" & Lg) = Worksheets("SERIEM").Range("S2:S" & Lg).Value

Bonne soiree
 

Discussions similaires

Réponses
3
Affichages
550

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll