Copie sous conditions de caractères et date

Bonjour à toutes et à tous,

J'ai parcouru certaines discussions portant sur mon souci mais aucune n'y apporte de réponse.

Voici mon souci:

J'ai une feuille qui doit intégrer les données d'un autre fichier ("copie matricielle" pourrait-on dire) sous la double condition:

1) que les 4 premiers caractères du compte général (colonne A) du fichier de départ appelé ici Bdd correspondent au compte général fichier d'arrivée

2) qu'on les colle à la bonne intersection de l'année indiquée par l'utilisateur dans une boîte de dialogue

Regardez par vous-même dans les fichiers joints...

Merci par avance.

Jeanba

12bdd.xlsx (8.95 Ko)

bonjour

pour faire simple et hyper fiable et aller très vite dans la saisie des années, je te propose ceci :

  • saisir les années directement en colonne E de BDD : c'est avec cette méthode qu'on va hyper vite, et qu'on voit immédiatement si on n'a pas fait de faute. Des centaines de lignes, des milliers. Aucune programmation, aucun calcul, aucun VBA. Rien !
  • dans Défis, mettre des SOMMEPROD. Tu connais cette fonction magique qui va lire dans toute bdd bien structurée comme ta BDD ?

Bonjour,

Merci de ta proposition.

Mais, comme tu as pu le remarquer, il s'agit de traiter des balances en vue du montage des états financiers.

Donc, s'il y a des formules dans le fichier de destination, on ne pourra plus rectifier des éventuelles erreurs de classement de comptes ou d'affectation (Débit/Crédit) des sommes concernées...

Je suis sûr qu'il existe une solution VBA permettant d'importer en quelque sorte ces données...

Alors, on continue nos recherches?

Jeanba

re

je ne comprends pas bien

dans n'importe quel fichier, un utilisateur peut effacer une formule qui donne un résultat faux et saisir une autre formule ou saisir directement un chiffre.

qu vient faire VBA ici ?

note pour une autre possibilité : à tout moment, tu peux "figer" les valeurs i.e. transformer les formules par les valeurs qu'elles retournent.

exemple :

  • saisir les dates en col E
  • le fichier de destination est à jour (les formules SOMMEPROD fonctionnent
  • copier la zone des formules
  • et dans la même zone faire Collage spécial Valeurs

Oui, je te comprends...

Mais, il semblait que les macros (VBA donc) sont justement faites pour nous faire gagner du temps.

Les fichiers que j'ai à traiter sont chacun d'au moins 1870 lignes. Imagine la galère d'ouvrier chaque fois et faire ce que tu dis là pour ensuite retraiter ces données, monter des liasses et faire le reporting, j'y serais encore au réveillon de noël!!

Alors, peut-être qu'un exemple de ce que tu décris là pourra me convaincre un peu plus...?

re

non : VBA est un programme en surcouche d'Excel et de Word et de PowerPoint.

il est inutile dans 95% des applis pro sous Excel

il apporte de multiples problèmes (pas facile de faire des macros propres et fiables, pas à la portée d'un développeur moyen.

et ne foncitonne pas sur Mac, sur OOO, sur tablette, sur smartphone

je traite des fichiers >50 000 lignes sans souci par formules et/ou TCD

as-tu pensé aux TCD ?

par contre impossible de modifier une cellule par saisie directe dans un TCD

il semble qu'on ne se comprend pas tout à fait. Saisir les dates pour chaque ligne de BDD se fera au clavier, quelle que soit la méthode. La mienne est plus visuelle, fiable et rapide. (saisie directe dans la colonne, sans fenêtre intermédiaire, sans bouton, sans macro)

ensuite, les SOMMEPROD agissent seules, sans bouton, sans macro. Et tu peux rectifier au cas par cas.

Oui, je crois effectivement qu'on se comprenne pas.

Les cellules de destination doivent récupérer des valeurs du fichier Bdd si le compte destinataire est identique à GAUCHE(Compte dans le feuille Bdd;NBCAR(compte testé dans fichier de destination...)

Je sais pas si j'arrive à mieux t'expliquer mon souci.

Donc, pour pouvoir admettre que telle donnée doit être copiée dans le fichier destinataire à l'intersection de la ligne du compte concerné et de l'année entrée, je vois vraiment pas comment des SOMMEPROD peuvent régler ce problème.

C'est pour cette raison que je t'ai proposer de modéliser ton idée à travers le retour des fichiers que j'ai joints.

Si c'est OK, fonctionnel et tout, bah, on fonce! Non?

re

tu ne connais pas SOMMEPROD

= SOMMEPROD (condition1 * condition2*...* colonnedevaleursquonveutrécupérerdanslaBDD)

condition peut être

GAUCHE(toncode;4)= GAUCHE(codedansBDD;4)

tu vois l'enchaînement de formules pas mathématiques et assez simples

un exemple, en gris les cellules calculées, en bleu la saisie des années

j'ai créé une colonne calculée grise pour bien montrer GAUCHE et ainsi mieux lire SOMMEPROD

11bdd.xlsx (10.20 Ko)

jmd,

Je te remercie de tous ces efforts, mais ton dernier post m'a confirmé que tu n'as pas bien saisi mon problème, ou à tout le moins, je l'ai pas bien exprimé.

Le fait est que je dois rechercher dans le fichier Bdd des valeurs qui correspondent au fichier destinataire.

Ce qui fait nécessaire appel à des instructions d'ouverture, de lecture et d'écriture (copier c'est en effet écrire!!) dans le fichier Bdd.

Une fois les critères recherchés sont réunis (compte destinataire correspond à GAUCHE(compte de Bdd; NBCAR(compte feuille destinataire)), alors copier/coller en respectant le sens et l'année (l'exercice en l'occurence..)

Je sais pas expliquer cela mieux que ça.

Mais, peut-être n'existe -il pas de solution....?

re

je crois que tu sous-estimes Excel

il sait aller lire et récupérer des infos depuis la BDD dans un autre fichier

mon exemple est didactique, je l'ai mis sur une unique feuille, mais tu peux mettre la formule SOMMEPROD sur un autre fichier. Elle viendra lire la BDD.

il ne faut jamais copier/coller entre fichiers (à la main ou avec VBA)

avec un aménagement, SOMMEPROD peut lire dans la BDD fermée

http://vpignat1.free.fr/Joomla/index.php?view=article&catid=15%3Ales-fonctions&id=125%3Asommeprod-compter-le-nombre-delements-repondant-a-une-ou-plusieurs-conditions&tmpl=component&print=1&page=&option=com_content

inconvénient pour te montrer : le chemin de la BDD n'est pas identique sur mon PC et sur le tien. La formule SOMMEPROD en a besoin. Si je te fais un exemple il ne fonctionnera pas chez toi.

Bien, soit!

Je vais essayer et t'en dirai des news...

Merci par avance

Rechercher des sujets similaires à "copie conditions caracteres date"