Effacer une ligne de A à N

Bonjour,

actuellement mon script efface la ligne complète, mais du coup il efface des formules que je ne voudrais pas effacer, ces formules étant placé en bout de ligne, j'aimerai plutôt effacer de A28 à N28 par exemple et pas toute la ligne.

Le script complet et la partie qui nous interesse en dessous

Sub ValidateOutputs()
    Dim Outputs As Range
    Dim Rooms As Range
    Dim Output As Range
    Dim HistoryPosition As Range

    Set Rooms = ActiveWorkbook.Names("Rooms").RefersToRange
    Set Outputs = ActiveWorkbook.Names("Outputs").RefersToRange
    Outputs.Copy
    Set HistoryPosition = ActiveWorkbook.Sheets("Sorties").Range("A1").End(xlDown).Offset(1, 0)
    HistoryPosition.PasteSpecial (xlPasteValues)

    For Each Output In Outputs.Rows
        Dim Room As String
        Dim RoomPosition As Double
        Room = Output.Cells(1, 1)
        If Not IsEmpty(Room) Then
            RoomPosition = Match(Room, Rooms)
            If RoomPosition >= 0 Then
           ActiveSheet.Range( _
                    Rooms.Cells(RoomPosition, 2), _
                    Rooms.Cells(RoomPosition, Rooms.Columns.Count)).ClearContents
            End If
        End If
    Next
    Outputs.Columns(1).ClearContents
End Sub
       ActiveSheet.Range( _
                    Rooms.Cells(RoomPosition, 2), _
                    Rooms.Cells(RoomPosition, Rooms.Columns.Count)).ClearContents

Je vous remercie de votre aide

Bonjour Jeffctrla

C'est tout simple

ActiveSheet.Range("A" & RoomPosition & ":N" & RoomPosition).ClearContents

ça ne fonctionne pas, ou je ne sais pas le placer correctement ...

8eb-1-v3.xlsm (34.91 Ko)

Re,

Mais c'est parce que tu ne nous dis pas tout

La liste des chambre occupée commence à la ligne 27 donc il faut additionner cette ligne

ActiveSheet.Range("A" & 27 + RoomPosition & ":N" & 27 + RoomPosition).ClearContents

La sub complète

Sub ValidateOutputs()
  Dim Outputs As Range
  Dim Rooms As Range
  Dim Output As Range
  Dim HistoryPosition As Range

  Set Rooms = ActiveWorkbook.Names("Rooms").RefersToRange
  Set Outputs = ActiveWorkbook.Names("Outputs").RefersToRange
  Outputs.Copy
  Set HistoryPosition = ActiveWorkbook.Sheets("Sorties").Range("A1").End(xlDown).Offset(1, 0)
  HistoryPosition.PasteSpecial (xlPasteValues)

  For Each Output In Outputs.Rows
    Dim Room As String
    Dim RoomPosition As Double
    Room = Output.Cells(1, 1)
    If Not IsEmpty(Room) Then
      RoomPosition = Match(Room, Rooms)
      If RoomPosition >= 0 Then
        ActiveSheet.Range("A" & 27 + RoomPosition & ":N" & 27 + RoomPosition).ClearContents
      End If
    End If
  Next
  Outputs.Columns(1).ClearContents
End Sub

Sinon on se retrouve sur la ligne 6 ou des cellules sont fusionnées

A+

merci, super ça fonctionne

Rechercher des sujets similaires à "effacer ligne"