Partager via

J'ai un problème de cellule figée

Anonyme
2024-07-19T14:05:20+00:00

Bonjour à tous,

J'ai une formule dans ma feuille 1 avec une formule somme toute simple, mais dans cette formule je n'arrive pas a figer une cellule qui se trouve dans ma feuille2 dans une mise en forme sous tableau.

J'ai une macro qui me valide tout mon formulaire de la feuille1 dans mon tableau de la feuille2 avec un renvoi a la ligne, quand je valide mes données ma formule somme se retrouve changer.

Concrètement:

dans mon formulaire en Feuil1

dans ma cellule D9 , j ai ma formule : =Feuil2!$c$5 "c est la cellule qui provient de ma mise sous forme de tableau"+1

cette cellule change malgré les $ quand je valide mon formulaire

Merci par avance pour vos réponse

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

7 réponses

  1. Anonyme
    2024-07-22T23:10:38+00:00

    Bonjour,

    Merci pour votre réponse, mon problème a été résolu

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2024-07-22T01:21:34+00:00

    Cette réponse a été automatiquement traduite. Par conséquent, il peut y avoir des erreurs grammaticales ou des formulations étranges.

    Merci de votre réponse rapide et de vous faire attendre.

    Le code de votre macro peut entraîner la modification de la référence de la formule lorsque vous insérez une nouvelle ligne. J’ai ajouté du code derrière votre code qui réinitialise la formule après avoir inséré une nouvelle ligne :

    Sub Copier()
        Dim wk_fichier As Workbook
        Dim WS_Adhesion As Worksheet
        Dim ws_Base As Worksheet
    
        'Define the variable
        Set wk_fichier = ActiveWorkbook
        Set WS_Adhesion = wk_fichier.Worksheets(3)
        Set ws_Base = wk_fichier.Worksheets(4)
    
        'Copy and paste the cell
        ws_Base.Cells(4, 1) = WS_Adhesion.Cells(6, 4)
        ws_Base.Cells(4, 2) = WS_Adhesion.Cells(7, 4)
        ws_Base.Cells(4, 3) = WS_Adhesion.Cells(9, 4)
        ws_Base.Cells(4, 4) = WS_Adhesion.Cells(12, 4)
        ws_Base.Cells(4, 5) = WS_Adhesion.Cells(13, 4)
        ws_Base.Cells(4, 6) = WS_Adhesion.Cells(14, 4)
        ws_Base.Cells(4, 7) = WS_Adhesion.Cells(15, 4)
        ws_Base.Cells(4, 8) = WS_Adhesion.Cells(16, 4)
        ws_Base.Cells(4, 9) = WS_Adhesion.Cells(17, 4)
        ws_Base.Cells(4, 10) = WS_Adhesion.Cells(18, 4)
        ws_Base.Cells(4, 11) = WS_Adhesion.Cells(20, 8)
        ws_Base.Cells(4, 12) = WS_Adhesion.Cells(23, 4)
        ws_Base.Cells(4, 13) = WS_Adhesion.Cells(24, 4)
        ws_Base.Cells(4, 14) = WS_Adhesion.Cells(25, 4)
        ws_Base.Cells(4, 15) = WS_Adhesion.Cells(30, 4)
    
        'Insert new row
        Sheets("Base").Select
        Rows("4:4").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    
        'Reset the formula
        WS_Adhesion.Cells(9, 4).Formula = "=Feuil2!$C$5+1"
    End Sub
    

    J’espère que cela vous aidera.

    Arthur - MSFT | Spécialiste du support communautaire Microsoft

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2024-07-21T22:38:41+00:00

    Bonjour,

    Merci pour votre répons réactive

    La fonction indirect me met une erreur de valeur

    La macro me met une erreur sur le nom de la macro.

    Je vous partage la macro que j'ai faite

    Sub Copier()

    Dim wk_fichier As Workbook

    Dim WS_Adhesion As Worksheet

    Dim ws_Base As Worksheet

    'Définir les variables fichiers et onglets

    Set wk_fichier = ActiveWorkbook

    Set WS_Adhesion = wk_fichier.Worksheets(3)

    Set ws_Base = wk_fichier.Worksheets(4)

    'Copier coller de la cellule

    ws_Base.Cells(4, 1) = WS_Adhesion.Cells(6, 4)

    ws_Base.Cells(4, 2) = WS_Adhesion.Cells(7, 4)

    ws_Base.Cells(4, 3) = WS_Adhesion.Cells(9, 4)

    ws_Base.Cells(4, 4) = WS_Adhesion.Cells(12, 4)

    ws_Base.Cells(4, 5) = WS_Adhesion.Cells(13, 4)

    ws_Base.Cells(4, 6) = WS_Adhesion.Cells(14, 4)

    ws_Base.Cells(4, 7) = WS_Adhesion.Cells(15, 4)

    ws_Base.Cells(4, 8) = WS_Adhesion.Cells(16, 4)

    ws_Base.Cells(4, 9) = WS_Adhesion.Cells(17, 4)

    ws_Base.Cells(4, 10) = WS_Adhesion.Cells(18, 4)

    ws_Base.Cells(4, 11) = WS_Adhesion.Cells(20, 8)

    ws_Base.Cells(4, 12) = WS_Adhesion.Cells(23, 4)

    ws_Base.Cells(4, 13) = WS_Adhesion.Cells(24, 4)

    ws_Base.Cells(4, 14) = WS_Adhesion.Cells(25, 4)

    ws_Base.Cells(4, 15) = WS_Adhesion.Cells(30, 4)

    ' renvoi a la ligne Macro

    Sheets("Base").Select

    Rows("4:4").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    End Sub

    Merci par avance

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2024-07-21T12:00:38+00:00

    Bonjour,

    Merci pour votre répons réactive

    La fonction indirect me met une erreur de valeur

    La macro me met une erreur sur le nom de la macro.

    Je vous partage la macro que j'ai faite

    Sub Copier()

    Dim wk_fichier As Workbook

    Dim WS_Adhesion As Worksheet

    Dim ws_Base As Worksheet

    'Définir les variables fichiers et onglets

    Set wk_fichier = ActiveWorkbook

    Set WS_Adhesion = wk_fichier.Worksheets(3)

    Set ws_Base = wk_fichier.Worksheets(4)

    'Copier coller de la cellule

    ws_Base.Cells(4, 1) = WS_Adhesion.Cells(6, 4)

    ws_Base.Cells(4, 2) = WS_Adhesion.Cells(7, 4)

    ws_Base.Cells(4, 3) = WS_Adhesion.Cells(9, 4)

    ws_Base.Cells(4, 4) = WS_Adhesion.Cells(12, 4)

    ws_Base.Cells(4, 5) = WS_Adhesion.Cells(13, 4)

    ws_Base.Cells(4, 6) = WS_Adhesion.Cells(14, 4)

    ws_Base.Cells(4, 7) = WS_Adhesion.Cells(15, 4)

    ws_Base.Cells(4, 8) = WS_Adhesion.Cells(16, 4)

    ws_Base.Cells(4, 9) = WS_Adhesion.Cells(17, 4)

    ws_Base.Cells(4, 10) = WS_Adhesion.Cells(18, 4)

    ws_Base.Cells(4, 11) = WS_Adhesion.Cells(20, 8)

    ws_Base.Cells(4, 12) = WS_Adhesion.Cells(23, 4)

    ws_Base.Cells(4, 13) = WS_Adhesion.Cells(24, 4)

    ws_Base.Cells(4, 14) = WS_Adhesion.Cells(25, 4)

    ws_Base.Cells(4, 15) = WS_Adhesion.Cells(30, 4)

    ' renvoi a la ligne Macro

    Sheets("Base").Select

    Rows("4:4").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
    

    End Sub

    Merci par avance

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2024-07-19T16:18:05+00:00

    Cette réponse a été automatiquement traduite. Par conséquent, il peut y avoir des erreurs grammaticales ou des formulations étranges.

    Bonjour Ludovic Surplie, Merci d’utiliser les produits Microsoft et de publier dans la communauté.

    D’après votre description, le problème peut provenir que vos formules dans Feuil1 ont changé après la validation du formulaire. Vous pouvez essayer les deux options suivantes :

    • Utilisez la fonction INDIRECT : la fonction INDIRECT peut vous aider à référencer des cellules dans d’autres feuilles de calcul et elle ne changera pas en raison de la validation du formulaire. Par exemple:
        =INDIRECT(“Feuil2!$C$5”)+1
      
    • Vérifiez le code de la macro : Assurez-vous que le code de votre macro ne modifie pas la formule lors de la validation du formulaire. Vous pouvez ajouter une étape au code de la macro pour réinitialiser la formule. Exemple:
        Sheets(“Feuil1”).Range(“D9”).Formula = “=Feuil2!$C$5+1”
      

    Comme je ne connais pas votre code VBA, je ne peux pas garantir que l’un ou l’autre des scénarios ci-dessus fonctionnera absolument. Si les options ci-dessus ne fonctionnent pas, vous pouvez m’envoyer le code VBA et j’en discuterai avec d’autres ingénieurs pour essayer de résoudre le problème.

    Quoi qu’il en soit, j’ai hâte que vous me fassiez connaître les résultats. Dans l’attente de votre réponse.

    Sinceres salutationsArthur - MSFT | Spécialiste du support communautaire Microsoft

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire