Copie du contenu d'une colonne sur les cases vides d'une autre

Bonjour,

Dans le cadre d'une recherche, je fais des imputations par la moyenne sur mes données manquantes. J'ai un jeu de données contenant les réponses à différents questionnaires, qui contiennent un certain nombre d'items chacun. Pour chaque questionnaire, j'ai créé une colonne Moyenne, qui contient la moyenne des items répondus par le participant. Pour chaque item du questionnaire, je filtre les réponses vides et je copie le contenu de la case de la colonne moyenne qui correspond à ma case vide. Même si j'arrive à remplacer d'un coup toutes les cases vides de ma colonne actuellement, je dois répéter cette manip pour chaque item, et j'en ai des dizaines, alors que la colonne moyenne ne change pas, donc ce qui est copié par participant ne change jamais.

Auriez-vous un moyen de copier la valeur contenue dans ma colonne moyenne sur tous les items vides de mes participants ? Cela me ferait gagner énormément de temps.

Merci d'avance, n'hésitez pas à me dire si ce n'est pas clair ou si il y a besoin de screens.

Hello,

perso je n'ai rien compris, mais un fichier joint avec un exemple du résultat serait certainement plus facile à comprendre

Par exemple, sur le fichier joint, je souhaite copier le contenu de la colonne NW sur les colonnes MW à NV

Re,

pour ce que j'en ai compris, un premier jet... a vérifier et adapter

Option Explicit

Sub Copie_du_contenu_d_une_colonne_sur_les_cases_vides_d_une_autre()

    ' *** A adapter ***
    Const Col_Debut As String = "MW"
    Const Col_Fin As String = "NW" ' colonne à copier
    Const Lig_Debut As Long = 2
    ' *** A adapter ***

    Dim Plage_Source As String
    Dim Cellule_Donnees As Range

    Dim Plage_Cible As Range
    Dim Cellule_Cible As Range

    Dim Lig_Fin As Long
    Lig_Fin = Cells(Rows.Count, Col_Fin).End(xlUp).Row
    Plage_Source = Col_Fin & Lig_Debut & ":" & Col_Fin & Lig_Fin

    For Each Cellule_Donnees In Range(Plage_Source).SpecialCells(xlCellTypeVisible)

        Set Plage_Cible = Range(Cellule_Donnees.Offset(0, -1), Cellule_Donnees.Offset(0, -26)) ' Plage MW à NV

        For Each Cellule_Cible In Plage_Cible

            If IsEmpty(Cellule_Cible.Value) Then
                Cellule_Cible.Value = Cellule_Donnees.Value
            End If

        Next Cellule_Cible

    Next Cellule_Donnees

End Sub

Sub ColorEmptyCells()
    Dim cell As Range
    Dim targetRange As Range

    ' Définissez la plage de cellules à vérifier
    Set targetRange = Range("MW2:NV625")

    ' Parcourez chaque cellule dans la plage spécifiée
    For Each cell In targetRange
        ' Si la cellule est vide
        If IsEmpty(cell.Value) Then
            ' Coloriez l'intérieur de la cellule (ici, jaune clair)
            cell.Interior.Color = RGB(255, 255, 153)
        Else
            ' Supprimez la couleur si elle n'est pas vide
            cell.Interior.ColorIndex = xlNone
        End If
    Next cell
End Sub
Rechercher des sujets similaires à "copie contenu colonne cases vides"