Sub StrangeThings()
Range("C3:F5").Merge
MsgBox Range("C3").MergeArea.Address
MsgBox Range("C3").MergeArea.Cells(5).Address
MsgBox Range("C3").MergeArea.Range("A1").Address 'ca peut surprendre
MsgBox Range("C3").MergeArea.Cells(1).Address
MsgBox Range("C3").MergeArea.Range("C1").Address 'là on est moins surpris ;-) (voir plus haut)
MsgBox Range("C3").MergeArea.Range("C3").Address 'là on a compris le truc
End Sub
C'est ce que nous avons expliqué plus haut, mapomme et moi :Sinon peux tu expliquer pourquoi le fait de changer A2:W40 en A1:W40 fonctionne ? les .Address du résultat de Find sont en général et pas spécifique au bloc ?? c'est la 1ere fois que j'utilise cette méthode !!
Non désolé !! ça je sais ; Moi je cherche à savoir le plantageutilisation du point qui est un adressage relatif à la zone du With,
- pas d'utilisation du point qui est un adressage absolu, c'est-à-dire relatif à la feuille.
Je n'ai pas constaté ce problème chez moi (ça efface Cells(4,6) chez moi) donc je croyais que tu parlais du problème de décalage de l'adressage.- la bonne valeur de Lg & col ( c'est affiché CLAIR en debug) comme cells( 3,5 ) et qui efface cells( 4,5)
Au départ il y avait un "pb de code" qui ne prenait pas encore en compte, d'une part le décalage dû au With, et d'autre part le fait qu'il y a des cellules fusionnées, et j'avoue que j'en étais resté là sans comprendre que même après modification du code, tu avais un autre problème sur ton PC.Donc c'est bien que je dis depuis le DEBUT !! je me casse la tête sur un Pb juste lié à mon PC , dejà chez DID25 cela fonctionnait au début ,mais plus chez moi ?? donc pas de Pb de code !!!
Private Sub BtnEffacer()
Dim Ry As Range
With Worksheets("Entrée").Range("A2:W40")
Set Ry = .Find(CStr(InputBox("rayon")), LookIn:=xlValues)
If Ry Is Nothing Then Exit Sub
Ry.Offset(1).Resize(8) = Empty
End With
End Sub
Oui, car ce qu'on répond ne semble pas être lu alors à quoi bon.Chafouin ce soir ?
Private Sub BtnEffacer()
Dim Ry As Range, KOI
KOI = InputBox("rayon")
If KOI <> "" Then
With Worksheets("Entrée").Range("A2:W40")
Set Ry = .Find(CStr(KOI), LookIn:=xlValues)
If Ry Is Nothing Then Exit Sub
Ry.Offset(1).Resize(8) = Empty
End With
Else
MsgBox "Référence rayon vide!", vbCritical
Exit Sub
End If
End Sub
C'est aussi ce que j'avais fait au départ, mais chez moi ça n'effaçait pas la bonne zone : ça effaçait les deux colonnes du casier VR...Bonsoir
Sauf erreur on efface ce qu'il faut
(j'ai tester la version d'origine)
Ci-dessous l'effacement à ma sauce
VB:Private Sub BtnEffacer() Dim Ry As Range With Worksheets("Entrée").Range("A2:W40") Set Ry = .Find(CStr(InputBox("rayon")), LookIn:=xlValues) If Ry Is Nothing Then Exit Sub Ry.Offset(1).Resize(8) = Empty End With End Sub