Report de formules dans un tableau

Bonjour à tous

J'ai un tableau dans le lequel j'ai des formules dans certaine colonne

J'utilise un formulaire pour ajouter de nouvelles données dans une nouvelle ligne

Lorsque que valide, la ligne ajoutées se retrouve en dernière position dans le tableau et les formules ne sont pas reproduites

Peut on me donner une solution

merci

Bonjour,

A+

Voilà mon fichier

edit modo : fichier supprimé --> doublon

Svp aidez moi je n'arrive pas à trouver la solution

Bonjour

Votre demande est trop vague

J'ai un tableau dans le lequel j'ai des formules dans certaine colonne

Quelle feuille et quel tableau et quelle colonne ?

J'utilise un formulaire pour ajouter de nouvelles données dans une nouvelle ligne

Quel formulaire ?

Tout se passe dans le tableau : "Table_Concession colonne F et K" et dans le formulaire : "FmSaisieConcession"

Merci de prendre un peu de votre temps pour me dépanner

bonjour,

il faut vérifier si la cellule ne contient pas une formule avant de coller votre valeur

Private Sub CmdValider_Click()
     Dim i, j  As Long
     If AjoutouModif = True Then
          i = Derligne(FeuilCaveau.Name, "A")
          j = 1
     Else
          i = LigneAModifier
          j = i

     End If
     ' controle de saisie

     If Me.T1.Value = "" Then     'zone de saisie du code ne doit pas etre vide
          MsgBox "Veuillez saisir le code de la concession avant de continuer!", vbCritical
          Me.T1.SetFocus
     ElseIf Me.T2.Value = "" Then     'zone de saisie du proprietaire ne doit pas etre vide
          MsgBox "Veuillez saisir le nom du propriétaire !", vbCritical
          Me.T2.SetFocus
     Else
          For j = 1 To 15
               With FeuilCaveau.Cells(i, j)
                    If Not .HasFormula Then .Value = Me.Controls("T" & j).Value   'seulement coller quand la cellule ne contient pas une formule
               End With
          Next j

          Unload Me

     End If
End Sub

Bonjour,

Merci de prendre un peu de votre temps pour me dépanner

Vu que BsALV s'est chargé de vous répondre, voyez si besoin que je regarde votre problème ou pas.

Juste une remarque pour vos codes. Evitez l'instruction Rowssource qui pose parfois des soucis, préférez-lui la méthode ADDITEM ou LIST (encore plus avec les tableaux structurés d'ailleurs)

Crdlt

Merci Dan

La solution de BSALVa été efficace mais pour le rowsource j'ai suivi un tuto sur le net. Pouvez-vous m'indiquer comment faire ?

Bonjour,

mais pour le rowsource j'ai suivi un tuto sur le net. Pouvez-vous m'indiquer comment faire ?

Oui bien sûr. Voici un exemple pour charger l'USF FmSaisieConcession

Private Sub UserForm_Initialize()
With FeuilProprietaire.ListObjects("Table_proprietaires")
    If .ListRows.Count = 1 Then
        Me.T2.AddItem .DataBodyRange(1, 1).Value
    Else: Me.T2.List = .ListColumns(1).DataBodyRange.Value
    End If
End With
With FeuilParametres
    Me.T3.List = .ListObjects("Tablecimetiere").DataBodyRange.Value
    Me.T7.List = .ListObjects("Table_statut_concession").DataBodyRange.Value
    Me.T8.List = .ListObjects("Table_caveau").DataBodyRange.Value
    Me.T10.List = .ListObjects("Table_duree").DataBodyRange.Value
End With
End Sub

Ensuite votre code dans la feuille Accueil

Private Sub CmeProprietaire_Click()
Load FmTable_Proprietaires
FmTable_Proprietaires.Show
End Sub

Dans la code valider, le code pourrait être adapté aussi. Mais déjà mettez ceci au début du code

Dim i as long, j  As Long

Idem dans les autres USF

Dites moi si je continue pour l changement des Rowssource

Oui bien sur et merci

je vais essayez (je dis bien essayer pour une débutant en vba)

je vais essayez (je dis bien essayer pour une débutant en vba)

Bah à voir le code on ne dirait pas....

Dans les listbox, attention que le fait de remplacer les Rowssource par ADDITEM ou LIST, ne va pas vous mettre les titres de colonnes comme le fait rowssource. Dans ce cas vous devez ajouter des labels au dessus ou plus simple éventuellement recréer une deuxième listbox juste au dessus et qui reprend uniquement les titres de colonnes.
Autre solution, si vous êtes sous excel Windows, c'est de remplacer la listbox par une listview.

Si vous voulez voir ce que donne une listview, regardez le fichier ici --> https://forum.excel-pratique.com/excel/filtre-sur-listbox-avec-une-combobox-168971/2#p1047391

A vous relire

Ne serait ce pas trop demandé pour avoir un exemple concret en modifiant mon fichier cité plus haut ?

Votre fichier en retour avec un exemple de listview pour l'USF Concession

Pour votre info :
- J'ai désactiver les 2 codes Modifier et supprimer. Il faudrait que vous m'expliquiez comment vous fonctionnez pour ces deux codes
- Le code Ajouter est modifié
- L'usf contenant la listbox a été renommée OLD tout comme la listbox listdonnee qui est renommée listdonnees_OLD
- Moyennant un code supplémentaire, vous pourriez aussi trier les données en cliquant sur le titre de la colonne. A voir si vous voulez

Comme je vous l'ai dit plus, j'ai suivi bêtement un tuto sur le net

Pour le code du bouton modifier il faudrait sélectionner une de la listview pour afficher les données dans le formulaire pour pouvoir modifier cette ligne

Pour le bouton supprimer il faudrait sélectionner une ligne de la la listview pour la supprimer

Si pouvez me donner le code pour faire un tri je suis preneur ainsi qu'un code pour afficher une photo

j'espère que je n'en demande pas trop mais je vais chercher de me côté

merci encore

Si pouvez me donner le code pour faire un tri j

Voici déjà pour le tri
Ajoutez ce code dans l'usf FmTable_Concession

Private Sub ListDonnees_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader) 'tri colonne dans la listview
With ListDonnees
    .Sorted = False
    .SortKey = ColumnHeader.Index - 1
    If .SortOrder = lvwAscending Then
        .SortOrder = lvwDescending
    Else
        .SortOrder = lvwAscending
    End If
    .Sorted = True
End With
End Sub

Faites moi un retour afin de vérifier que cela fonctionne

le tri ne se fait pas, est ce qu' il doit se faire au clic au chargement ou lors de la validation ?

Bonjour,

est ce qu' il doit se faire au clic au chargement ou lors de la validation ?

En principe, la listview est toujours triée sur la colonne 1 lorsque vous ouvrez l'USF

Pour trier dans une colonne particulière, vous devez simplement cliquer sur les entêtes de colonne de la listview.
Par contre je voudrais que vous fassiez cet essai.
- trier votre feuille Caveau pour par exemple avoir le num de concession le plus grand en première ligne
- relancez l'USF Concession

Est-ce que vous voyez bien toute les données ?

Le tri a été fait mais je ne vois toutes les données sur toutes lignes sauf la ligne du bas

Ok vous avez le même souci que ce que j'avais constaté. Alors faites ceci dans l'USF FmTable_Concession:

- Allez dans la Private Sub UserForm_Initialize()
- désactivez la ligne --> sorted =true
- juste avant le END SUB, rajoutez ces lignes

With Me.ListDonnees
    .ListItems(1).Selected = False
    Set .SelectedItem = Nothing
    .Sorted = True
End With

refaites un test

Rechercher des sujets similaires à "report formules tableau"