A voir également:
- Problème de Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Telecharger macro nblettre.xla - Forum Bureautique
12 réponses
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
27 juin 2016 à 16:58
27 juin 2016 à 16:58
Bonjour,
J'ai remplacé la ligne qui posait problème :
Par :
Du coup, fichier tout neuf :
https://www.cjoint.com/c/FFBo6Hk5hXf
Cordialement.
J'ai remplacé la ligne qui posait problème :
n_ligne = .Columns("A").Find(ComboBox_choix, xlValues).Row
Par :
n_ligne = .Columns(1).Cells.Find(what:=ComboBox_choix.Value, LookAt:=xlWhole).Row
Du coup, fichier tout neuf :
https://www.cjoint.com/c/FFBo6Hk5hXf
Cordialement.
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
Modifié par Kuartz le 28/06/2016 à 14:34
Modifié par Kuartz le 28/06/2016 à 14:34
Re,
Moi en fait, je vois plutôt les choses comme ça, du coup ça fonctionne parfaitement.
En fait le code dit, cherche la valeur, si tu ne la trouve pas, alors tu ajoute la ligne, sinon, tu modifie la ligne concernée.
(En réalité, il dit si tu ne la trouve pas, alors le numéro de ligne est la ligne en dessous la dernière ligne complétée de la feuille "Suivi budgétaire", sinon, le numéro de la ligne est celui de la ligne qui existe déjà)
Ne reste que le problème que lorsqu'une ligne est ajoutée, elle est ajoutée 4 lignes plus bas. Et pour cause, ce qu'il y a sur la feuille est un tableau "objet", il contient donc des lignes considérées comme utilisées par le code. Donc la notion de dernière ligne n'existe plus. Je ne comprend pas l'intérêt réel de la création d'un tableau sur un tableur mais bon...
Bref, voilà le fichier modifié :
https://www.cjoint.com/c/FFCmF6tqZVf
Cordialement.
Moi en fait, je vois plutôt les choses comme ça, du coup ça fonctionne parfaitement.
Set Trouve = .Columns(1).Cells.Find(what:=ComboBox_choix.Value, LookAt:=xlWhole) If Trouve Is Nothing Then n_ligne = Sheets("Suivi budgétaire").Range("a50000").End(xlUp).Row + 1 Else n_ligne = Trouve.Row End If
En fait le code dit, cherche la valeur, si tu ne la trouve pas, alors tu ajoute la ligne, sinon, tu modifie la ligne concernée.
(En réalité, il dit si tu ne la trouve pas, alors le numéro de ligne est la ligne en dessous la dernière ligne complétée de la feuille "Suivi budgétaire", sinon, le numéro de la ligne est celui de la ligne qui existe déjà)
Ne reste que le problème que lorsqu'une ligne est ajoutée, elle est ajoutée 4 lignes plus bas. Et pour cause, ce qu'il y a sur la feuille est un tableau "objet", il contient donc des lignes considérées comme utilisées par le code. Donc la notion de dernière ligne n'existe plus. Je ne comprend pas l'intérêt réel de la création d'un tableau sur un tableur mais bon...
Bref, voilà le fichier modifié :
https://www.cjoint.com/c/FFCmF6tqZVf
Cordialement.
Le soucis c'est qu'avec ce code, la ligne qu'il me rajoute ne fait plus parti du tableau et donc certains éléments (genre mise en forme conditionnelle) ne se mettent plus à jour automatiquement...
Ça m'ennuie, car fut un temps, cette macro marchait tres bien, et je ne sais pas pk elle ne marche plus...
L'idée de faire ça sous un tableur, était de pouvoir réaliser un suivi des échéances et des budgets de façon automatique, en remplissant seulement un UserForm.
(C'est une demande qui ne vient pas de moi... personnellement, j'aurai plutot fait des entrées manuels dans un tableau, mais travailler avec des personnes d'un certain age implique qu'elle ne savent pas se servir d'un ordinateur^^)
Tu aurais fait quoi toi?
Ça m'ennuie, car fut un temps, cette macro marchait tres bien, et je ne sais pas pk elle ne marche plus...
L'idée de faire ça sous un tableur, était de pouvoir réaliser un suivi des échéances et des budgets de façon automatique, en remplissant seulement un UserForm.
(C'est une demande qui ne vient pas de moi... personnellement, j'aurai plutot fait des entrées manuels dans un tableau, mais travailler avec des personnes d'un certain age implique qu'elle ne savent pas se servir d'un ordinateur^^)
Tu aurais fait quoi toi?
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
28 juin 2016 à 18:57
28 juin 2016 à 18:57
Bonjour*
Peut-être une réponse à votre problème
Conversion du tableau automatique en table suivi de la recopie des valeurs puis re-création du tableau automatique aux nouvelles dimensions.
https://www.cjoint.com/c/FFCq3FLJaNw
A essayer
Cdlt
Peut-être une réponse à votre problème
Conversion du tableau automatique en table suivi de la recopie des valeurs puis re-création du tableau automatique aux nouvelles dimensions.
https://www.cjoint.com/c/FFCq3FLJaNw
A essayer
Cdlt
Bonjour Frenchie,
J'ai bien l'impression que vous êtes en train de me sauver la vie...
Je perds un peu au niveau de la mise en forme mais bon ça n'est pas très grave.
Cependant, je pense que maligne de référence avait du être hidé ou supprimer...
Elle permettait en effet de transférer automatiquement des formules et des mise en forme conditionnelles à toutes les lignes que j'ajoutai au tableau.
Serait-il possible de mettre a jour le tableau en comprenant cette ligne?
Je vous renvoi le fichier avec la fameuse ligne...
http://www.cjoint.com/c/FFDg6F5H8gL
En vous remerciant !!
J'ai bien l'impression que vous êtes en train de me sauver la vie...
Je perds un peu au niveau de la mise en forme mais bon ça n'est pas très grave.
Cependant, je pense que maligne de référence avait du être hidé ou supprimer...
Elle permettait en effet de transférer automatiquement des formules et des mise en forme conditionnelles à toutes les lignes que j'ajoutai au tableau.
Serait-il possible de mettre a jour le tableau en comprenant cette ligne?
Je vous renvoi le fichier avec la fameuse ligne...
http://www.cjoint.com/c/FFDg6F5H8gL
En vous remerciant !!
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
29 juin 2016 à 18:14
29 juin 2016 à 18:14
Bonjour
Pour recopier vos formules, il y avait la solution d'utiliser l'enregistreur de macro en validant chaque cellule contenant une formule, puis d'appeler cette macro juste après le remplissage d'une ligne. Hélas, vous avez des formules beaucoup trop longues, notamment en colonnes AL et AP(2342 caractères).
Alors, autre solution retenue, on fait un copier/collage spécial formules de la ligne 3 sur la nouvelle ligne. (j'ai pris la ligne 3 parce que c'est la seule qui contient les formules, si vous avez un autre endroit ou elles sont stockées, vous pouvez changer)
https://www.cjoint.com/c/FFDqgi0ZDlw
Cdlt
Pour recopier vos formules, il y avait la solution d'utiliser l'enregistreur de macro en validant chaque cellule contenant une formule, puis d'appeler cette macro juste après le remplissage d'une ligne. Hélas, vous avez des formules beaucoup trop longues, notamment en colonnes AL et AP(2342 caractères).
Alors, autre solution retenue, on fait un copier/collage spécial formules de la ligne 3 sur la nouvelle ligne. (j'ai pris la ligne 3 parce que c'est la seule qui contient les formules, si vous avez un autre endroit ou elles sont stockées, vous pouvez changer)
https://www.cjoint.com/c/FFDqgi0ZDlw
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
30 juin 2016 à 17:41
30 juin 2016 à 17:41
Bonjour
Voici, avec effacement de toutes les cellules ne contenant pas de formules
https://www.cjoint.com/c/FFEpNNW1avw
Cdlt
Voici, avec effacement de toutes les cellules ne contenant pas de formules
https://www.cjoint.com/c/FFEpNNW1avw
Cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
1 juil. 2016 à 12:16
1 juil. 2016 à 12:16
Bonjour
Rappel: ne pouvant enregistrer les formules car trop longues, j'ai opté pour une recopie de la ligne 3, cette ligne me sert de modèle, elle peut être sauvegardée à un autre endroit (dans une autre feuille par exemple).
J'ai supprimé l'effacement des données après recopie
https://www.cjoint.com/c/FGbkkQBkn6k
A tester
Cdlt
Rappel: ne pouvant enregistrer les formules car trop longues, j'ai opté pour une recopie de la ligne 3, cette ligne me sert de modèle, elle peut être sauvegardée à un autre endroit (dans une autre feuille par exemple).
J'ai supprimé l'effacement des données après recopie
https://www.cjoint.com/c/FGbkkQBkn6k
A tester
Cdlt
J'entends bien.
Le soucis étant que je pense qu'il faudrait copier les formules (de la ligne 3) dans la dernière ligne avant que la macro ne copie les données...
Car le soucis est qu'il copie tout... et non juste les cellules avec une formule...
Cela marche sur votre version?
http://www.cjoint.com/c/FGbmgbSQiEL
J'avais un soucis dans mes formules sur la ligne 3 donc voila le nouveau doc...
Le soucis étant que je pense qu'il faudrait copier les formules (de la ligne 3) dans la dernière ligne avant que la macro ne copie les données...
Car le soucis est qu'il copie tout... et non juste les cellules avec une formule...
Cela marche sur votre version?
http://www.cjoint.com/c/FGbmgbSQiEL
J'avais un soucis dans mes formules sur la ligne 3 donc voila le nouveau doc...
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
>
TeddyGalere
1 juil. 2016 à 16:07
1 juil. 2016 à 16:07
Je regarderai plus tard, De là ou je suis, je n'arrive pas à ouvrir votre fichier.
Patientez
Cdlt
Patientez
Cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
2 juil. 2016 à 07:09
2 juil. 2016 à 07:09
Bonjour
Voilà le fichier avec la modification.
Pour une question de sécurité et vu la taille des formules, j'ai préféré conserver une copie de la ligne 3 contenant les fameuses formules dans la feuille "Sauvegarde_formules",pour se prémunir d'un éventuel effacement du tableau de la feuille Suivi budgétaire".
Donc, si le contenu de la comboBox traitant l'Audit n'existe pas dans la feuille "Suivi budgétaire", alors on recopie cette ligne sauvegardée dans une nouvelle ligne de la feuille "Suivi budgétaire", sinon si l'audit est déjà existant, on remplace les valeurs.
https://www.cjoint.com/c/FGce6HwmZJw
En espérant que cela corresponde à vos attentes
Cdlt
Voilà le fichier avec la modification.
Pour une question de sécurité et vu la taille des formules, j'ai préféré conserver une copie de la ligne 3 contenant les fameuses formules dans la feuille "Sauvegarde_formules",pour se prémunir d'un éventuel effacement du tableau de la feuille Suivi budgétaire".
Donc, si le contenu de la comboBox traitant l'Audit n'existe pas dans la feuille "Suivi budgétaire", alors on recopie cette ligne sauvegardée dans une nouvelle ligne de la feuille "Suivi budgétaire", sinon si l'audit est déjà existant, on remplace les valeurs.
https://www.cjoint.com/c/FGce6HwmZJw
En espérant que cela corresponde à vos attentes
Cdlt
Bonjour Frenchie,
Désolé de vous déranger de retour de week-end, mais cela ne fonctionne pas...
Je ne sais pas si c'est parce que nous avons des versions d'excel différentes, mais si je supprime une ligne, et que je veux la remettre (pour faire un test), excel me met en mode débogage...
Je vous retransmet le tableau car j'ai du changer les formules de la sheet (sauvergarde formule) car elles concernait a chaque fois 2 lignes...
http://www.cjoint.com/c/FGehQbSRw2L
Désolé de vous déranger de retour de week-end, mais cela ne fonctionne pas...
Je ne sais pas si c'est parce que nous avons des versions d'excel différentes, mais si je supprime une ligne, et que je veux la remettre (pour faire un test), excel me met en mode débogage...
Je vous retransmet le tableau car j'ai du changer les formules de la sheet (sauvergarde formule) car elles concernait a chaque fois 2 lignes...
http://www.cjoint.com/c/FGehQbSRw2L
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
4 juil. 2016 à 18:48
4 juil. 2016 à 18:48
Bonjour
Je vais essayer d'être le plus clair possible.
La feuille "Suivi budgétaire" est faite avec un tableau automatique. Le problème, c'est que lorsque on ajoute une ligne, cette dernière se trouve en dehors du tableau. Pour respecter la construction de votre fichier, j'ai conservé ce tableau, mais à chaque fois que l'on réajuste sa taille, excel incrémente l'index affecter à ce tableau (tableau1 devient tableau2). Avant de sortir du programme je force l'index à 1, comme cela le tableau s'appelle toujours "tableau1", mais auparavant avant de le recréer je supprime ce "tableau1" afin que je puisse renommer le tableau ainsi créer en tableau1 (on ne peut pas renommer un tableau 2 en tableau1 si ce dernier existe déjà).
Principe du déroulement du programme:
-Tableau1 existe
-Conversion du "tableau1" en plage (on perd les caractéristiques du tableau automatique, on se retrouve avec une feuille excel classique)
-Ajout d'une nouvelle ligne
-Création d'un nouveau tableau nommé par excel "tableau2" incluant la nouvelle ligne.
-Renommage de "tableau2" en "tableau1".
-Prêt pour une nouvelle insertion de ligne, on recommence le cycle.
Le problème rencontré dernièrement est que le tableau1 n'a pas été recréé, donc n'ayant pas été trouvé, excel à déclenché une erreur. Pour contourner ce problème, j'ai rajouté une ligne qui ignore cette erreur et laisse continuer le programme si cela se produit.
https://www.cjoint.com/c/FGeqvMaNkPw
En espérant que ce soit la bonne.
Cdlt
Je vais essayer d'être le plus clair possible.
La feuille "Suivi budgétaire" est faite avec un tableau automatique. Le problème, c'est que lorsque on ajoute une ligne, cette dernière se trouve en dehors du tableau. Pour respecter la construction de votre fichier, j'ai conservé ce tableau, mais à chaque fois que l'on réajuste sa taille, excel incrémente l'index affecter à ce tableau (tableau1 devient tableau2). Avant de sortir du programme je force l'index à 1, comme cela le tableau s'appelle toujours "tableau1", mais auparavant avant de le recréer je supprime ce "tableau1" afin que je puisse renommer le tableau ainsi créer en tableau1 (on ne peut pas renommer un tableau 2 en tableau1 si ce dernier existe déjà).
Principe du déroulement du programme:
-Tableau1 existe
-Conversion du "tableau1" en plage (on perd les caractéristiques du tableau automatique, on se retrouve avec une feuille excel classique)
-Ajout d'une nouvelle ligne
-Création d'un nouveau tableau nommé par excel "tableau2" incluant la nouvelle ligne.
-Renommage de "tableau2" en "tableau1".
-Prêt pour une nouvelle insertion de ligne, on recommence le cycle.
Le problème rencontré dernièrement est que le tableau1 n'a pas été recréé, donc n'ayant pas été trouvé, excel à déclenché une erreur. Pour contourner ce problème, j'ai rajouté une ligne qui ignore cette erreur et laisse continuer le programme si cela se produit.
https://www.cjoint.com/c/FGeqvMaNkPw
En espérant que ce soit la bonne.
Cdlt
Bonjour Frenchie,
Malheureusement, toujours le même problème...
Le programme marche bien, mais si par exemple de supprime une ligne, lorsque j'en rentrerai une nouvelle, la macro se mettra en mode débogage.
Merci pour votre aide, mais je vais tenté de repartir sur ma macro initiale, car une macro du même type fonctionne dans ma sheet recap...
Merci encore pour votre aide et vos explications.
Cordialement.
Malheureusement, toujours le même problème...
Le programme marche bien, mais si par exemple de supprime une ligne, lorsque j'en rentrerai une nouvelle, la macro se mettra en mode débogage.
Merci pour votre aide, mais je vais tenté de repartir sur ma macro initiale, car une macro du même type fonctionne dans ma sheet recap...
Merci encore pour votre aide et vos explications.
Cordialement.
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
>
TeddyGalere
Modifié par Frenchie83 le 5/07/2016 à 14:15
Modifié par Frenchie83 le 5/07/2016 à 14:15
Bonjour
Il faudrait que vous me fournissiez le tableau avec l'exemple qui ne fonctionne pas afin que je puisse juger par moi-même en expliquant bien les actions que vous faites pour que je puisse reproduire le problème.
Cdlt
Il faudrait que vous me fournissiez le tableau avec l'exemple qui ne fonctionne pas afin que je puisse juger par moi-même en expliquant bien les actions que vous faites pour que je puisse reproduire le problème.
Cdlt
Sur votre tableau, si je vais dans la feuille "suivi budgétaire" et que je supprime la ligne 5 (qui concerne la CPAM de Moselle), et que je retourner ensuite sur la feuille saisie budgétaire pour lancé ma macro concernant ce même audit, excel me met en mode débogage.
Mais ma première macro me semblait bien.
Elle marchait fut un temps (grâce à vous si je ne me trompe pas) mais je ne comprend plus pourquoi elle ne marche pas.
Je vais donc me repencher dessus, car elle me permettait de garder mise en forme et tout ce qui va avec...
Mais ma première macro me semblait bien.
Elle marchait fut un temps (grâce à vous si je ne me trompe pas) mais je ne comprend plus pourquoi elle ne marche pas.
Je vais donc me repencher dessus, car elle me permettait de garder mise en forme et tout ce qui va avec...
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
Modifié par Frenchie83 le 5/07/2016 à 16:22
Modifié par Frenchie83 le 5/07/2016 à 16:22
Voilà, j'ai dû apporter quelques petites modifications après l'avoir sérieusement torturé.
Des erreurs sont apparues selon que j'effaçais une ligne ou bien que je la supprimais, les recopies suivantes ne se faisaient pas systématiquement là ou je les attendais (la cause étant liée toujours à ses fameux tableaux automatiques)
J'espère que cette fois-ci sera la bonne!!!
https://www.cjoint.com/c/FGfnoPxnYMk
Cdlt
Des erreurs sont apparues selon que j'effaçais une ligne ou bien que je la supprimais, les recopies suivantes ne se faisaient pas systématiquement là ou je les attendais (la cause étant liée toujours à ses fameux tableaux automatiques)
J'espère que cette fois-ci sera la bonne!!!
https://www.cjoint.com/c/FGfnoPxnYMk
Cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
5 juil. 2016 à 17:40
5 juil. 2016 à 17:40
si on veut une mise en page particulière du tableau Ca dépend de ce que vous voulez. Faut voir
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
6 juil. 2016 à 11:21
6 juil. 2016 à 11:21
Bonjour
Comme ceci?
https://www.cjoint.com/c/FGgjuJ8dMIk
Cdlt
Comme ceci?
https://www.cjoint.com/c/FGgjuJ8dMIk
Cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
6 juil. 2016 à 14:58
6 juil. 2016 à 14:58
Voilà
https://www.cjoint.com/c/FGgm4x8BUBk
J'ai mis le bout de code entre 2 les lignes d'astérisques.
Cdlt
https://www.cjoint.com/c/FGgm4x8BUBk
J'ai mis le bout de code entre 2 les lignes d'astérisques.
Cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
6 juil. 2016 à 15:27
6 juil. 2016 à 15:27
https://www.cjoint.com/c/FGgnzd8quFk
Je ne masque pas la ligne 3, je la réduis à une hauteur de 0,1, ce qui permet de pouvoir la recopier.
Les nouvelles lignes sont réajustées à la hauteur 15
Voilà
Je ne masque pas la ligne 3, je la réduis à une hauteur de 0,1, ce qui permet de pouvoir la recopier.
Rows(3).RowHeight = 0.1
Les nouvelles lignes sont réajustées à la hauteur 15
Rows(n_ligne).RowHeight = 15
Voilà
28 juin 2016 à 10:29
Merci pour ta réponse...
Tu as fait autre chose? Pcq si je fais juste ce changement dans mon fichier, cela ne marche pas...
Par contre j'ai fais un test avec ton fichier...
Cela marche bien, mais du coup si j'essaie de faire une nouvelle entrée ca me remet en mode déboguage sur la meme ligne...
Je te renvoi le fichier avec une entrée de plus. (structure - CPAM Moselle - 2016)
http://www.cjoint.com/c/FFCiDaULyXL
Le truc est que si la ligne est deja existente dans mon tableau, cela doit allé rechercher cette ligne mais si elle n'éxiste pas il faut allé en créer une...
Visiblement ca ne marche pas pour moi...
Merci d'avance.
Ps: D'ailleurs j'avais fait un bouton "saisie" pour créer une ligne et un bouton "consulter" pour rappeler une ligne et la modifier... Mais visiblement avec ton code, les 2 options devraient marchés quelque soit le bouton non?