Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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...
 

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 .... 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
591
Réponses
5
Affichages
250
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…