Figer les valeurs d'une celulle contenant une formule, suivante une date

Bonjour

Je viens à ous pour m'aider à trouver une solution afin de figer les valeurs d'une collone suivante un critère

Dans le fichier joint, je cherche a calculer les charges de ressources par semaines.

Colonne A:B on a les ressources et les charges déclarées qui sont en cumulées (valeur unique par ressource)

Cellule E1, c'est la valeur de la semaine

Tableau C7:XX je mets les valeurs par semaine, via une formule

Je cherche à figer la valeur obtenue pour la colonne de la semaine (ligne7 donc la valeur est <E1)

Ci-joint un exemple de fichier

Merci de votre

Sophie

7freeze-valeur.xlsx (11.31 Ko)

Bonjour Sophie,

Pour ce que tu veux, il faudra utiliser VBA

Pour cela, tu peux utiliser l'enregistreur de macro

https://support.office.com/fr-fr/article/automatiser-des-t%C3%A2ches-avec-l-enregistreur-de-macro-974ef220-f716-4e01-b015-3ea70e64937b

A+

Merci de ta reponse, mais c'est bien l'objet de ma demande, quel code VBA faire?

Re,

Et bien c'est bien l'objet de ma réponse l'enregistreur VBA va enregistrer chaque manipulation que tu feras

A+

Comment puis je mettre dans le VBA le controle sur la valeur E1 afin qu'il puisse ensuite sélectionner les colonnes dont la ligne 7 est < E1?

Voici un code

Sub FreezeValeur()
  Dim Col As Long
  ' Avec le conteneur feuille nommée
  With Sheets("Feuil1")
    ' De la colonne D = 4ème à la colonne N = 14ème
    For Col = 4 To 14
      ' Teste si la valeur de la cellule , ligne 7, colonne Col est inférieure à la E1
      If .Cells(7, Col).Value < .Range("E1").Value Then
        ' On fige les valeurs sur les 4 lignes 7 à 10
        .Cells(7, Col).Resize(4, 1).Value = .Cells(7, Col).Resize(4, 1).Value
      End If
    Next Col
  End With
End Sub

A+

Merci Bruno

Comment ne pas limiter le nombre de ligne (que le VBA aille jusque la derniere ligne non vide) et idem sur les colonnes?

Je suis tres novice en VBA

Mersi

Sophie

Re,

Comme ceci

Sub FreezeValeur()
  Dim Col As Long, DCol As Long, DLig As Long, NbLig As Long
  ' Avec le conteneur feuille nommée
  With Sheets("Feuil1")
    ' Dernière ligne non vide de la colonne C
    DLig = .Range("C" & Rows.Count).End(xlUp).Row
    ' Nombre de ligne au total
    NbLig = DLig - 7 + 1
    ' Dernière colonne non vide de la ligne 7
    DCol = .Cells(7, Columns.Count).End(xlToLeft).Column
    ' De la colonne D = 4ème à la colonne N = 14ème
    For Col = 4 To DCol
      ' Teste si la valeur de la cellule , ligne 7, colonne Col est inférieure à la E1
      If .Cells(7, Col).Value < .Range("E1").Value Then
        ' On fige les valeurs sur les 4 lignes 7 à 10
        .Cells(7, Col).Resize(NbLig, 1).Value = .Cells(7, Col).Resize(NbLig, 1).Value
      End If
    Next Col
  End With
End Sub

A+

Excellent Merci Bruno et bonne journée

Rechercher des sujets similaires à "figer valeurs celulle contenant formule suivante date"