Ne coller que dans les cellules vides

Bonjour, je n'ai pas réussi à faire une chose qui me paraisait simple, c'est de copier un ensemble de cellules et ne les coller que dans les ensembles vides.

Merci de votre aide:

Sub toutelaSemaine()

 'Copier coller un groupe de cellules dans les cellules voisines mais ignorer si les cellules sont déja pleines
 'La selection à copier est C126:F128 (c'est les données de lundi) dans les cellules H126 : Z126 ( mardi-vendredi)

     If ActiveSheet.Range("C126:Z128") = "" Then

'cette partie fonctionne mais je suis preneur de simplification

             If ActiveSheet.Range("C126:Z128").MergeCells = True Then
         ActiveSheet.Range("H126:K128").Value = Range("C126:F128").Value
         ActiveSheet.Range("M126:P128").Value = Range("C126:F128").Value
         ActiveSheet.Range("R126:U128").Value = Range("C126:F128").Value
         ActiveSheet.Range("W126:Z128").Value = Range("C126:F128").Value

             Else

         ActiveSheet.Range("H126:K128").Value = Range("C126:F128").Value
         ActiveSheet.Range("M126:P128").Value = Range("C126:F128").Value
         ActiveSheet.Range("R126:U128").Value = Range("C126:F128").Value
         ActiveSheet.Range("W126:Z128").Value = Range("C126:F128").Value
             End If
     End If

 Application.CutCopyMode = False

 End Sub

Est-il possible de selectionner des cellules d'une ligne et de les coller à la suite sur la même ligne, ex:

(Cells A1, B1, C1, D1), à copier et à coller sur (cellsE1, F1, G1, H1) puis en (cellsI1, J1, K1, L1) etc ?

Bonjour

Tu devrais joindre ton fichier avec ce que tu as et ce que tu souhaites sur un exemple concret...

Bye !

Bonjours à tous,

Pour une simplification

Sub toutelaSemaine()
    ' Plage source à copier
    Dim sourceRange As Range
    Set sourceRange = ActiveSheet.Range("C126:F128")

    ' Plage de destination
    Dim destRange As Range
    Set destRange = ActiveSheet.Range("H126:Z128")

    ' Vérifier si la plage de destination est vide
    If WorksheetFunction.CountBlank(destRange) = destRange.Cells.Count Then
        ' Copier la plage source vers la plage de destination
        sourceRange.Copy destRange
    End If

    Application.CutCopyMode = False
End Sub

et pour l'autre demande

Sub CopierCollerLigne()
    Dim ws As Worksheet
    Dim rngSource As Range
    Dim rngDestination As Range
    Dim i As Integer
    Dim colOffset As Integer

    ' Spécifiez la feuille de travail
    Set ws = ThisWorkbook.Sheets("NomDeVotreFeuille")

    ' Spécifiez la plage source à copier (par exemple, A1:D1)
    Set rngSource = ws.Range("A1:D1")

    ' Spécifiez la cellule de destination initiale (par exemple, E1)
    Set rngDestination = ws.Range("E1")

    ' Spécifiez le décalage de colonne entre les collages successifs (par exemple, 4 colonnes)
    colOffset = 4

    ' Copiez et collez la ligne dans des cellules adjacentes
    For i = 1 To colOffset
        rngSource.Copy
        rngDestination.PasteSpecial xlPasteValues
        Set rngSource = rngSource.Offset(0, colOffset)
        Set rngDestination = rngDestination.Offset(0, colOffset)
    Next i

    Application.CutCopyMode = False
End Sub

Bonjour, merci c'est très clair, bien détaillé, ça va bien m'aider !!

Je confirme ça marche très bien, merci encore

Rechercher des sujets similaires à "coller que vides"