Champs de Saisie

gooliver7

XLDnaute Nouveau
Bonjour à tous je voudrai savoir si c'est dificil de faire un champs de saisie sur excel

exemple:

date numéro de compte type transaction montant

et que ces valeurs aillent se ranger dans la feuille 1 ou 2 selon le type de compte ?


J'espère que ce n'est pas trop complexe ?

Merci d'avance!
 

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

bonjour gooliver,

ta demande n'est pas impossible mais les éléments sont peu nombreux pour te proposer une solution toute faite. Un fichier simplifié serait utile pour te répondre spécifiquement.

En attendant fais une recherche sur le forum sur l'utilisation des userform (en bas de cette page notamment il y a un exemple)

A+
 

gooliver7

XLDnaute Nouveau
Re : Champs de Saisie

bon voila en fait j'ai ces trois feuilles Excel represant en fait 3 comptes
je voudrai faire une nouvelle feuille ou je n'ai qu'un champs de saisi à faire pour que ce que j'écrive se colle directement au bon endroit dans les 3 feuilles

à savoir mon champs de saisie: (exemple)


14/2/2009 Compte courrant retrait CB 38 euros cours de peinture


ces infos vont se coller directement dans la feuille de calcul appropriée....

est-ce compliqué à faire ?

Merci beaucoup!!
 

Pièces jointes

  • Comptes Exemple.zip
    18 KB · Affichages: 51
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

bonsoir,

si je comprends bien, tu veux écrire dans une cellule du feuillet Relatorio do Mês ou un textbox, la concaténation de la Date, du compte courant, du type d'opération, de la somme et d'une description de l'opération et qu'en fonction du compte courant saisi, les informations se mettent automatiquement dans le feuillet qu'il faut. Est-ce bien ça?

Le problème est que la structure de tes 3 feuilles compte est differente
Ce serait mieux que les colonnes de ces trois feuillets qui vont recevoir les infos saisies soient au même emplacement partout (exemple : Date en A, type d'opération en B, somme en C et description en D). Le feuillet Conta Corrent BR ne contient même pas une colonne somme en €!!

Modifies ton fichier de base en conséquence avant qu'on s'attaque à une solution pour la saisie automatique (qui sera forcement du vba)

A+
 

gooliver7

XLDnaute Nouveau
Re : Champs de Saisie

voila l'ami c'est fait tout est respecté bon les colonne que je ne voulais pas sont masqués

bon pour toute les feuille c'est pas trop compliqué elle se ressemble toute
à l'exception d'une (fluxo de caixa qui est divisé en 2 partie , en haut : Entradas ce sont les entrées d'argent, et plus vers le bas : saidas ce sont les sorties tu crois que ça va être dure ?)

RapidShare: Easy Filehosting

(désolé mais c'est trop grand pour passer sur le forum 50ko)

Merci encore de t'intéresser à ma question!

à bientot
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

bonsoir gooliver

si je comprends bien, tu veux écrire dans une cellule du feuillet Relatorio do Mês ou un textbox, la concaténation de la Date, du compte courant, du type d'opération, de la somme et d'une description de l'opération et qu'en fonction du compte courant saisi, les informations se mettent automatiquement dans le feuillet qu'il faut. Est-ce bien ça?
A+

Merci de me dire si j'ai bien compris ta demande.

Par ailleurs ton fichier est un .xlsx, peux-tu le tranformer en .xls, je ne peux pas l'ouvrir.

A+
 
Dernière édition:

gooliver7

XLDnaute Nouveau
Re : Champs de Saisie

Oui c'est cela, mais ceci doit être dans une nouvelle feuille (pas dans relatorio do mês)
Merci beaucoup!
je te l'envoi dans l'autre format (mais je vais perdre mes mise en forme conditionnelles)
 

Pièces jointes

  • Compte format a modifier.zip
    32.5 KB · Affichages: 33
  • Compte format a modifier.zip
    32.5 KB · Affichages: 33
  • Compte format a modifier.zip
    32.5 KB · Affichages: 34

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

re...

c'est plus complexe qu'il n'y parait, une erreur de saisie et ce sera le bug!
Je te propose donc de passer par des controles distincts de type textbox (pour la date,la somme et le détail) et combobox (pour le compte et la description) qui seront placés dans la feuille 1. Ces combobox s'appuieront sur les plages nommées que tu as déjà dans ton fichier (plages qui seront redimensionnées à chaque ouverture du classeur par une macro.
Dis-moi ce que tu en penses (en sachant qu'il y a du boulot!)

Sachant que certaines définitions de plages sont rompues (#ref!), je n'ai pu coder en vba que les plages valides suivantes (plages sur fond jaune dans le fichier joint)

Categorias_Entradas, Categorias_Saidas, Descrição_CIC, Descrição_Poupança_1_Real, Descrições_Conta_Corrente_Real_BR
Descrições_Entradas, Descrições_Saidas, Entradas_Conta_Corrente_Real_BR et Saidas_Conta_Corrente_Real_BR

Ci dessous le code inclus dans la page ThisWorkBook de l'éditeur vba

Code:
Private Sub Workbook_Open()
F1 = "Fluxo de Caixa"
With Sheets(F1)
ActiveWorkbook.Names.Add Name:="Descrições_Entradas", RefersToR1C1:="='" & F1 & "'!R2C12:R" & .Cells(65536, 12).End(xlUp).Row & "C12"
ActiveWorkbook.Names.Add Name:="Categorias_Entradas", RefersToR1C1:="='" & F1 & "'!R2C13:R" & .Cells(65536, 13).End(xlUp).Row & "C13"
ActiveWorkbook.Names.Add Name:="Descrições_Saidas", RefersToR1C1:="='" & F1 & "'!R2C22:R" & .Cells(65536, 22).End(xlUp).Row & "C22"
ActiveWorkbook.Names.Add Name:="Categorias_Saidas", RefersToR1C1:="='" & F1 & "'!R2C23:R" & .Cells(65536, 23).End(xlUp).Row & "C23"
End With
F2 = "CIC"
With Sheets(F2)
ActiveWorkbook.Names.Add Name:="Descrição_CIC", RefersToR1C1:="=" & F2 & "!R2C12:R" & .Cells(65536, 12).End(xlUp).Row & "C12"
End With
F3 = "Poupança Real 1"
With Sheets(F3)
ActiveWorkbook.Names.Add Name:="Descrição_Poupança_1_Real", RefersToR1C1:="='" & F3 & "'!R2C13:R" & .Cells(65536, 13).End(xlUp).Row & "C13"
End With
F4 = "Conta Corrente BR"
With Sheets(F4)
ActiveWorkbook.Names.Add Name:="Descrições_Conta_Corrente_Real_BR", RefersToR1C1:="='" & F4 & "'!R2C13:R" & .Cells(65536, 13).End(xlUp).Row & "C13"
ActiveWorkbook.Names.Add Name:="Entradas_Conta_Corrente_Real_BR", RefersToR1C1:="='" & F4 & "'!R2C14:R" & .Cells(65536, 14).End(xlUp).Row & "C14"
ActiveWorkbook.Names.Add Name:="Saidas_Conta_Corrente_Real_BR", RefersToR1C1:="='" & F4 & "'!R2C15:R" & .Cells(65536, 15).End(xlUp).Row & "C15"
End With
End Sub

Attention : si tu modifies l'emplacement des plages nommées, cela ne fonctionnera plus.

Ci-joint le fichier modifié.

Peux-tu réparer les plages invalides et supprimer les noms inutiles.
 

Pièces jointes

  • Compte format a modifier.zip
    41.3 KB · Affichages: 31
  • Compte format a modifier.zip
    41.3 KB · Affichages: 28
  • Compte format a modifier.zip
    41.3 KB · Affichages: 30

gooliver7

XLDnaute Nouveau
Re : Champs de Saisie

Salut,
bon j'essaie de me renseigner (car je n'ai pas tout compris à ton message: textbox, combobox mais je vais trouver!)

"Ces combobox s'appuieront sur les plages nommées que tu as déjà dans ton fichier (plages qui seront redimensionnées à chaque ouverture du classeur par une macro."
(la aussi je crois que je n'ai pas tout saisie...)
mais si j'ai bien compris ça a l'air super bien!


tout ce que je peux te dire c'est que toute les colonnes que tu as saisie en jaune sont exactement les colonnes à traiter dans le champs de saisie!!!!!

les autres colonnes (non colorié en jaune ne me servent que de base de données pour faire mes calculs et en auncun cas ne feront partie de ma saisie)

ça simplifie les problèmes?

ormi les colonnes en jaune dans le champs de saisie il faut juste: la date, le montant, et le détail (le détail est un texte au choix)

dans le champs de saisie on pourra indiquer les listes n'est-ce pas ? (pour faciliter la saisie ?


voila, dis moi si j'ai répondu à tes questions

Un enorme merci en tout cas!!!!
 

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

bonjour gooliver,

voila : desormais ton fichier s'ouvre automatiquement sur la feuille 1,

puis tu choisis un compte (liste des comptes masquée en colonne I du feuillet 1), ensuite les listes des combo description et catégorie s'adapte au compte choisi (sauf pour CIC puisque pas de catégorie, à toi de le préciser dan sun prochain post).

Un clic sur Valider et les infos saisis dans les champs se placent automatiquement dans le feuillet qui va bien. sur la première ligne vierge.

Pour que ça fonctionne, j'ai du mettre la ligne des entêtes en ligne 14 pour les 3 comptes. D'autre part, comme tu n'as pas changé la srtructure de ton fichier, interdiction d'inserer, supprimer ou déplacer une colonne sous peine de réadaptation du code (si les entêtes étaient les mêmes dans les 3 feuillet on aurait pas ce pb).

Je n'ai pas traité les sorties Fluxo de Caica si tu veux te lancer dans l'apprentissage...

Dis-moi ce que tu en penses

A+
 

Pièces jointes

  • Compte format a modifier.zip
    50.4 KB · Affichages: 35
  • Compte format a modifier.zip
    50.4 KB · Affichages: 35
  • Compte format a modifier.zip
    50.4 KB · Affichages: 36

gooliver7

XLDnaute Nouveau
Re : Champs de Saisie

Ouah Chapeau
tu as fais une travail remarquable!!!!
C'est comme cela que je voulais!
Bon pour le rendre opérationnel il va faloir que j'ajoute beacoup de choses
Tu crois qu'en décorticant tes codes je peux arriver à comprendre le mécanisme ?
d'autre part tu m'as dit que je n'ai pas modifié la structure , j'ai adapté les colonne comme tu m'avais dis (fallait t'il autre chose en plus?)
Un très grand merci !
Je vais essayer de continuer
 

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

salut gooliver,

ravi que cela te convienne.
Quand je dis que tu n'as pas changé la structure, je voulais dire que les colonnes n'ont pas les mêmes libellés pour tous les comptes (de mémoire dans le feuillet Corrente, il n'y a pas de colonne € et je renvoie la valeur en euros dans la colonne R$ et cette colonne n'est pas à la même place que pour les colonnes € des autres feuillets.
Comme je te le disais dans mon dernier post, si tu supprimes, déplaces ou insères des colonnes dans tes feuillets compes il faudra réadapter le code.

En mettant des entêtes équivalentes dans tous tes feuillets, tu pourrais créer une variable identifiant le n° de colonne (par la fonction find) et envoyer les valeurs saisies dans les feuillets en s'appuyant su cette variable et éviter ainsi toute erreur si jamais la structure des feuillets change.

Le code que je t'ai transmis n'est pas très compliqué donc tu peux le décortiquer, et puis si tu rencontres des problèmes tu peux me relancer en posant des questions sur cette discussion et/ou par message personnel (pour des questions de partage en vigueur sur ce forum, je te répondrai dans la discussion).

No problemo si tu souhaites des améliorations notamment le traitement des sorties de fluxo de Caica, mais comme le meilleur moyen pour apprendre est de mettre les mains dans le cambouis.

A bientôt peut-être

A+
 
Dernière édition:

gooliver7

XLDnaute Nouveau
Re : Champs de Saisie

Mon ami merci! beaucoup pour ton aide vraiment très précieuse!
Bon maintenant je t'ai mieux compris!
Je vais donc changer la structure pour avoir les colonnes à la même place (même si je les masque)

tu me dis la chose suivante: "tu pourrais créer une variable identifiant le n° de colonne (par la fonction find) et envoyer les valeurs saisies dans les feuillets en s'appuyant su cette variable et éviter ainsi toute erreur si jamais la structure des feuillets change."

si je modifie les structure comme je compte le faire, je ne pourrai pas utiliser ton code donc.

Je me servirait d'une variable avec la fonction find tu dis ? (ça par contre je ne comprends pas, c'est un autre type de code ???? plus simple ???? ou c'est le même genre de code ?)

Merci encore!

Oui je vais décortique car je veux apprendre!

à plus l'ami
 

ledzepfred

XLDnaute Impliqué
Re : Champs de Saisie

Salut gooliver,

je t'ai préparé un exemple pour matérialiser mes propos: dans le fichier joint, imagines que les valeurs AAAAAA, BBBBB, etc... sont les entêtes d'un tableau, je définis la variable COL_A comme étant la n° de la colonne contenant la valeur AAAAAA que je cherche par la fonction FIND (rechercher ou CTRL+F, code récupéré par l'enregistreur de macros puis raccourci)
Ensuite dans mes macros si je dois affecter une valeur ou une formule se rapportant à mon entête) je remplace 1 par COL_A
exemple : remplacer cells(3,1) par cells(3,COL_A)
Ainsi si je coupe ma colonne A et que je l'insère entre D et E, la variable COL_A prendra la valeur 5 et mes données seront toujours affecter à la bonne colonne.

On peut adapter le code fourni avec cette méthode mais cela suppose que le n° de ligne des entêtes soit équivalent dans tous les feuillets comptes et idem pour les entêtes de colonnes (sauf que tu peux les mettre où tu veux en colonne)
A+
 

Pièces jointes

  • Classeur1.xls
    24.5 KB · Affichages: 44
  • Classeur1.xls
    24.5 KB · Affichages: 58
  • Classeur1.xls
    24.5 KB · Affichages: 53
Dernière édition:

Discussions similaires

Réponses
1
Affichages
293

Statistiques des forums

Discussions
312 464
Messages
2 088 645
Membres
103 902
dernier inscrit
ZENDA