Explication code
o
Bonjour à tous,
j'ai besoin d'un coup demain,
le compilateur me signale une "erreur d'exécution 91 variable objet ou variable de bloc With non définie" sur lignecourante = Trouve.Row
je ne comprends pas pourquoi, quelqu'un peut il m'éclairer?
merci
oza
Sub Remplacer()
Dim lignecourante As Long
Dim Quoi As String
Dim Trouve As Range
Quoi = Range("'travail à la référence'!A27")
Set Trouve = Worksheets("données MAJ").Range("A:A").Find(Quoi, lookat:=xlWhole)
If Trouve Is Nothing Then
lignecourante = Trouve.Row 'erreur
Application.ScreenUpdating = False
Sheets("travail à la référence").Select
Range("A27:B27").Select
Selection.Copy
Sheets("données MAJ").Select
Range("A" & lignecourante & ":B" & lignecourante).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("travail à la référence").Select
lignecourante = Worksheets("récap").Range("A65536").End(xlUp).Row + 1
Sheets("travail à la référence").Select
Range("A27:B27").Select
Selection.Copy
Sheets("récap").Select
Range("A" & lignecourante & ":B" & lignecourante).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("travail à la référence").Select
Range("C25:W25").Select
Selection.Copy
Sheets("récap").Select
Range("C" & lignecourante & ":W" & lignecourante).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("travail à la référence").Select
Sheets("travail à la référence").Select
Range("F12").Select
Selection.Copy
Sheets("récap").Select
Range("X" & lignecourante).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("travail à la référence").Select
Sheets("travail à la référence").Select
Range("A25:B25").Select
Selection.Copy
Sheets("récap").Select
Range("A" & lignecourante & ":B" & lignecourante).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("travail à la référence").Select
Application.ScreenUpdating = True
Else
MsgBox "Cette référence existe déjà", vbCritical, "Alerte Application"
End If
End SubBonjour
Tu veux affecter une valeur quand la variable Trouve = Nothing
Je pense que le bon code serait
If Not Trouve Is Nothing Then
o
suis-je bête!
bien vu! merci
G
Salut ozaland et le forum
Pas sûr, ne sachant pas ce qu'est prévu de faire la macro
Sub Remplacer()
Dim lignecourante As Long
Dim Quoi As String, Trouve As Range
Application.ScreenUpdating = False
Quoi = Range("'travail à la référence'!A27")
Set Trouve = Worksheets("données MAJ").Range("A:A").Find(Quoi, lookat:=xlWhole)
If Not Trouve Is Nothing Then
lignecourante = Trouve.Row
Sheets("travail à la référence").Range("A27:B27").Copy
Sheets("données MAJ").Range("A" & lignecourante).PasteSpecial Paste:=xlPasteValues
lignecourante = Worksheets("récap").Cells(Rows.Count, "A").End(xlUp).Row + 1
Sheets("récap").Range("A" & lignecourante).PasteSpecial Paste:=xlPasteValues
Sheets("travail à la référence").Range("C25:W25").Copy
Sheets("récap").Range("C" & lignecourante).PasteSpecial Paste:=xlPasteValues
Sheets("travail à la référence").Range("F12").Copy
Sheets("récap").Range("X" & lignecourante).PasteSpecial Paste:=xlPasteValues
Sheets("travail à la référence").Range("A25:B25").Copy
Sheets("récap").Range("A" & lignecourante).PasteSpecial Paste:=xlPasteValues
Else
MsgBox "Cette référence existe déjà", vbCritical, "Alerte Application"
End If
Application.ScreenUpdating = True
End SubA+