Saisie des données par ordre et avec formule

Bonjour,

En fait, j'ai 2 problématique dans mon fichier que je me suis bloqué à trouver une solution,

La premiére c'est que lorsque je lance ""USERFORM2"" et je rempli les données de tout les champs (sauf celle du NOUVEAU SOLDE qu'elle doit etre calculé automatiquement sur fichier excel), la ligne ne s'ajoute pas pas ordre dans le tableau de base de donnée d'excel.

Ma deuxiéme question c'est que avec cet ordre, je veux que la formule de la colonne E reste fixe dans tout le tableau, tout en respectant l'odre de saisie des lignes une aprés l'autre.

Merci de m'aider à dépasser cette situation pour que je puisse avancer. Veuiller trouver le fichier en piece jointe seulement pour simulation de cas.

A essayer de saisir plusieurs fois pour pouvoir détecter le probléme.

Merci

Bonjour ZakMiral,

Perso, je n'ai rien compris à votre demande

Question 1 : Quel ordre, il n'y en a aucun dans le fichier ?

Question 2 : Formule qui reste fixe dans un tableau structuré, elle le reste, quel est le problème ?

@+

Bonjour BRUNO ;

hhh en fait je suis dsl pour la mauvaise explication parce que je suis débutant en VBA Excel.

Bon, fais une simulation, ouvres le USERFORM et introduit les données et cliques sur ENREGISTRER. tu fais cela deux à 3 fois pour que le problème se vois.

Bon, tu vas détecter que la colonne E comporte une formule au niveau du tableau excel, alors que les données de la ligne ajoutée ne se remet pas aprés la dernière colonne non vide. Ainsi que la formule ne se valide pas pour la nouvelle ligne ajoutée en USERFORM.

Merci Bcp. je pense que j'ai pu bien expliquer maintenant, seulement vous faites un exemple (en 2 ou 3 fois) et vous allez détecter le probléme;

Resumé : Je veux que les données saisies au niveau du USEFORM prennent la place de l'aprés dérniere ligne non vide, et que la formule de la colonne E puisse etre validé (Calculé automatiquement). MErci

Bonsoir ZakMiral, BrunoM45 , le forum,

Ne serait-ce pas plutôt :

L = Sheets("Echéancier34").Range("A" & Rows.Count).End(xlUp).Row + 1

A tester...

'Pour le bouton nouvel enregistrment

Private Sub CommandButton_enreg_Click()
  Dim L As Integer

 If MsgBox("Confirmez-vous l'ajout du nouveau dossier à la base de donnée ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
   With Sheets("Echéancier34")
    With .ListObjects("tableau2") '......agit sur le tableau2
     .ListRows.Add '.....................ajoute une ligne à la fin du tableau
      L = .ListColumns(1).Range.Find("", SearchDirection:=xlNext).Row '...définit la première ligne vide de la colonne "Nom et prénom du salarié"
    End With
     .Range("A" & L).Value = TextBox1
     .Range("B" & L).Value = TextBox2
     .Range("C" & L).Value = TextBox3
     .Range("D" & L).Value = TextBox4
     '.Range("E" & L).Value = TextBox5
     .Range("E" & L).FormulaR1C1 = "=Tableau2[@Colonne1]-Tableau2[@Colonne2]"
    End With
End If
    Unload Me
End Sub

Cordialement,

Bonsoir xorsankukai

Je viens de l'essayer, ça marche mais si tu l'appliques, la ligne va se mettre en dernier lieu mais la colonne E ne se calcule pas automatiquement (meme si la formule est deja existante en glissant vers le bas)

Merci

xorsankukai c'est vraiment super, je viens de l'essayer, Ca fonctionne Nikel.
Sauf que svp il y 'aura pas de possibilité que j'applique la formule au niveau du tableau excel, et non pas en code VBA, parce que le fichier comporte plusieurs formules (et aussi des mise en forme conditionnelles et autres trucs) ou bien c'est recommandé de les faires en code VBA ?
merci bcp vous m'avez sauvé

Re,

Je viens de l'essayer, ça marche mais si tu l'appliques, la ligne va se mettre en dernier lieu mais la colonne E ne se calcule pas automatiquement (meme si la formule est deja existante en glissant vers le bas)

a b c d

Ce n'est pas le résultat souhaité ?

Cordialement

xorsankukai c'est vraiment super, je viens de l'essayer, Ca fonctionne Nikel.
Sauf que svp il y 'aura pas de possibilité que j'applique la formule au niveau du tableau excel, et non pas en code VBA, parce que le fichier comporte plusieurs formules (et aussi des mise en forme conditionnelles et autres trucs) ou bien c'est recommandé de les faires en code VBA ?
merci bcp vous m'avez sauvé

C'est bon je vais essayer de faire des formules au niveau du code VBA.

En sujet annexe, est ce que je peux voir les mises en forme conditionnelles (figurante au niveau de la cellule en photo ci-dessus) dans un champ visuel en USERFORM ?

Merci bcp

Re,

Merci pour le retour,

Pas sur de comprendre la demande....quelle formule? quelle MFC ?

  • Un essai....à titre expérimental (code fait à partir de l'enregistreur de macro)...
  • A chaque saisie, je supprime puis recrée la MFC de la colonne E.

Cordialement,

Bonjour

Oui en fait vous avez fait la mise en forme conditionnelle au niveau du code VBA (hhh ca va m'allourdir la tache puisque le tableau contient plus de 70 colonnes à faire le meme traitement) c'est pour cela j'ai demandé est ce que la formule (plusieurs types de formules: SI, ....) ainsi que les couleurs de mise en forme conditionnelles peuvent etre appliquées au niveau du tableau excel et non pas au niveau du fichier txt du code vba.

Merci bcp pour la réactivité

Bonjour ZakMiral, le forum,

Un nouvel essai....

  • j'ai crée la formule ainsi que la mfc sur la première ligne du tableau(colonne E).
  • Je ne remplies que les 4 premières colonnes à l'aide du formulaire...

Cordialement,

Rechercher des sujets similaires à "saisie donnees ordre formule"