XL 2019 Macro VBA pour remplacer fonction par valeur si condition respecté

WinnieJ

XLDnaute Nouveau
Bonjour a tous,

Etant novice en VBA j'essaye de coller des bouts de code que je trouve sur les forums pour créer ce que je recherche.
Cependant j'ai du mal a réaliser ce code qui me semble pourtant assez simple.

Explication :
Si cellule A2 de la feuille "donnée" = à une valeur d'une cellule de la colonne A de la feuille "DECEMBRE22" alors copier la ligne correspondante de B à K et coller au même endroit pour écraser les formules.

Je joins un fichier test pour plus de compréhension

Je vous remercie pour votre aide.

J'ai commencé par faire ceci :

VB:
Sub heurefinalise()

Dim lig As Long
Dim col As Long

Worksheets("DECEMBRE22").Select
 
    If Cells(lig, 1) = Worksheets("Données").Range(Cells(2, 2)).Value Then Worksheets("DECEMBRE22").Range("BX" & lig & ":DJ" & lig).PasteSpecial Paste:=xlPasteValues
    
    End If

End Sub
 

Pièces jointes

  • remplacer fomule test.xlsx
    10.6 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour
Etant novice en VBA j'essaye de coller des bouts de code que je trouve sur les forums pour créer ce que je recherche.
Eh non ça s'invente pas. Il faut prendre le temps de comprendre ce qu'on fait, de décomposer et d'explorer..

Et pour une macro, vous mettez un classeur .xlsx, par nature sans macro o_O

Je passe mon chemin et vous souhaite bon apprentissage
 

vgendron

XLDnaute Barbatruc
Bonjour

je ne comprend pas bien le lien entre ce que tu décris comme besoin, et le fichier

VB:
Sub Ecraser()
Jourcherché = Sheets("Donnée").Range("A2")
With Sheets("Decembre22")
    Set trouve = .Range("A:A").Find(Jourcherché, LookIn:=xlValues) 'on cherhce le jour dans la colonne A
    If Not trouve Is Nothing Then 'si on l'a trouvé,
        .Range("B" & trouve.Row).Resize(1, 10) = Sheets("Donnée").Range("B2:K2").Value 'on copie les données de B2K2 à la ligne (trouve.row)
    End If
End With
End Sub
 

WinnieJ

XLDnaute Nouveau
Bonjour

je ne comprend pas bien le lien entre ce que tu décris comme besoin, et le fichier

VB:
Sub Ecraser()
Jourcherché = Sheets("Donnée").Range("A2")
With Sheets("Decembre22")
    Set trouve = .Range("A:A").Find(Jourcherché, LookIn:=xlValues) 'on cherhce le jour dans la colonne A
    If Not trouve Is Nothing Then 'si on l'a trouvé,
        .Range("B" & trouve.Row).Resize(1, 10) = Sheets("Donnée").Range("B2:K2").Value 'on copie les données de B2K2 à la ligne (trouve.row)
    End If
End With
End Sub

Bonjour, merci de votre réponse.

Le début du code est top cependant arrivé à cette ligne de code : Sheets("Donnée").Range("B2:K2").Value 'on copie les données de B2K2 à la ligne (trouve.row) il y a un problème car cela fige les données B2:K2.

Ce que je recherche est de copier et coller en valeur la ligne de (B et ligne trouvée) et (K et ligne trouvée) au même endroit pour écraser les formule présente.

J'espère me faire comprendre et je te remercie.
 

Statistiques des forums

Discussions
312 094
Messages
2 085 238
Membres
102 831
dernier inscrit
ayal