écraser ligne déjà existente par la nouvelle copiée macro xls
Fermé
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
-
15 févr. 2015 à 12:33
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 - 23 févr. 2015 à 10:12
Le Pingou Messages postés 12182 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 7 novembre 2024 - 23 févr. 2015 à 10:12
A voir également:
- écraser ligne déjà existente par la nouvelle copiée macro xls
- Darkino nouvelle adresse - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Aller à la ligne excel - Guide
- Flixcord nouvelle adresse - Accueil - Outils
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
24 réponses
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
15 févr. 2015 à 22:45
15 févr. 2015 à 22:45
Bonjour,
Juste au passage, je comprends : Si les informations en colonne A et B sont identique aux valeurs sources A2 et F2 alors écraser la ligne...
Ceci impose de contrôler toutes les lignes existantes dans le fichier cible en réalisant une boucle sur les valeurs A et B.
Essayer avec ceci pour le bloc With...
Juste au passage, je comprends : Si les informations en colonne A et B sont identique aux valeurs sources A2 et F2 alors écraser la ligne...
Ceci impose de contrôler toutes les lignes existantes dans le fichier cible en réalisant une boucle sur les valeurs A et B.
Essayer avec ceci pour le bloc With...
With Worksheets(Cible) For c = 2 To LigneEncours - 1 If (.Range("A" & c) = Worksheets(Source).Range("A2").Value And .Range("B" & c) = Worksheets(Source).Range("F2").Value) Then liok = c Exit For End If liok = c Next c .Range("A" & liok) = Worksheets(Source).Range("A2").Value .Range("B" & liok) = Worksheets(Source).Range("F2").Value .Range("C" & liok) = Worksheets(Source).Range("E40").Value .Range("D" & liok) = Worksheets(Source).Range("H40").Value .Range("E" & liok) = Worksheets(Source).Range("I40").Value .Range("F" & liok) = Worksheets(Source).Range("J40").Value .Range("G" & liok) = Worksheets(Source).Range("K40").Value End With
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
Modifié par Le Pingou le 16/02/2015 à 17:27
Modifié par Le Pingou le 16/02/2015 à 17:27
Bonjour,
Eh bien pour cela il faut savoir où est le classeur en question ainsi que la feuille concernée et si possible le nom du classeur.... !
Salutations.
Le Pingou
Eh bien pour cela il faut savoir où est le classeur en question ainsi que la feuille concernée et si possible le nom du classeur.... !
Salutations.
Le Pingou
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
16 févr. 2015 à 20:33
16 févr. 2015 à 20:33
le premier classeur s'appelle FDT, la feuille HISTORIC et se trouve sur mon bureau. Le second se trouve dans dans C:\FDT\SALARIE et se nomme MICKAEL CASTAIGNEDE 02_2015 et la feuille egalement HISTORIC.
Ce que je veux c'est lors de l'enregistrement des données dans MC 02_2015, je veux que ces mêmes données s'enregistre dans FDT en même temps
Ce que je veux c'est lors de l'enregistrement des données dans MC 02_2015, je veux que ces mêmes données s'enregistre dans FDT en même temps
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
16 févr. 2015 à 21:37
16 févr. 2015 à 21:37
Bonjour,
Merci pour les informations.
Donc la feuille [HISTORIC] des 2 classeurs est rigoureusement identique concernant les données et la structure Oui / Non ?
Note, nous ne sommes pas dans le même bureau alors un petit bonjour c'est plus convenable ...
Merci pour les informations.
Donc la feuille [HISTORIC] des 2 classeurs est rigoureusement identique concernant les données et la structure Oui / Non ?
Note, nous ne sommes pas dans le même bureau alors un petit bonjour c'est plus convenable ...
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
16 févr. 2015 à 22:37
16 févr. 2015 à 22:37
Bonjour dsl....
Oui elles sont identiques.....
Oui elles sont identiques.....
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
16 févr. 2015 à 22:11
16 févr. 2015 à 22:11
Bonsoir,
Petite confirmation le premier classeur est bien celui qui a les 2 feuilles [FDT] et [HISTORIC]
Merci de votre réponse.
Petite confirmation le premier classeur est bien celui qui a les 2 feuilles [FDT] et [HISTORIC]
Merci de votre réponse.
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
16 févr. 2015 à 22:40
16 févr. 2015 à 22:40
Re Bonjour,
En faite les deux classeur ont la même structure. Le maitre est FTD. Dedans jy rentre des données que je sauvegarde avec le nom du technicien et le mois. Cependant les infos sont rentrees semaine par semaine d'ou la necessite de faire une sauvegarde dans les deux documents. En effet FTD aura les donnée de tout les techniciens si modification à la semaine.
En faite les deux classeur ont la même structure. Le maitre est FTD. Dedans jy rentre des données que je sauvegarde avec le nom du technicien et le mois. Cependant les infos sont rentrees semaine par semaine d'ou la necessite de faire une sauvegarde dans les deux documents. En effet FTD aura les donnée de tout les techniciens si modification à la semaine.
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
16 févr. 2015 à 22:42
16 févr. 2015 à 22:42
Si vous voulez je peux vous envoyer mon classeur FDT et le second?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
16 févr. 2015 à 23:14
16 févr. 2015 à 23:14
Bonsoir,
Merci, une proposition demain en fin de journée.
J'ai réalisé un petit montage alors vos 2 exemples sont les bienvenu, les compresser en ZIP et le mettre sur https://www.cjoint.com/ et poster le lien
Merci, une proposition demain en fin de journée.
J'ai réalisé un petit montage alors vos 2 exemples sont les bienvenu, les compresser en ZIP et le mettre sur https://www.cjoint.com/ et poster le lien
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
16 févr. 2015 à 23:42
16 févr. 2015 à 23:42
Bonsoir,
Ci joint le lien https://www.cjoint.com/c/EBqxYcK9pEZ
La macro b permet de faire la sauvegarde entre les feuilles FTD et HISTORIC des deux classeur.
Enfin une sauvegarde des donnée à la semaine est il possible à regarder?
Vraiment merci pour votre aide, c'est tellement rare de rencontrer des gens serviable
Ci joint le lien https://www.cjoint.com/c/EBqxYcK9pEZ
La macro b permet de faire la sauvegarde entre les feuilles FTD et HISTORIC des deux classeur.
Enfin une sauvegarde des donnée à la semaine est il possible à regarder?
Vraiment merci pour votre aide, c'est tellement rare de rencontrer des gens serviable
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
16 févr. 2015 à 23:43
16 févr. 2015 à 23:43
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
16 févr. 2015 à 23:44
16 févr. 2015 à 23:44
Merci, proposition demain
Bonne nuit.
Salutations.
Le Pingou
Bonne nuit.
Salutations.
Le Pingou
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
17 févr. 2015 à 08:11
17 févr. 2015 à 08:11
Bonjour,
Merci pour le fichier. Une fois était suffisant, je suppose que c'est 2 fois le même.
Pour la prochaine, éviter d'insérer un point accoler au lien car il a tendance à si ajouter et ainsi le lien devient erroné...donc non valide.
Merci pour le fichier. Une fois était suffisant, je suppose que c'est 2 fois le même.
Pour la prochaine, éviter d'insérer un point accoler au lien car il a tendance à si ajouter et ainsi le lien devient erroné...donc non valide.
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
17 févr. 2015 à 09:02
17 févr. 2015 à 09:02
Bonjour,
Eh bien là, c'est désolant, je ne trouve pas trace de ma proposition concernant : Voici ma macro de base: Sub SAUVEGARDER() et en plus aucune macro de ce nom dans les 30 modules qui sont pratiquement vide.... !
Eh bien là, c'est désolant, je ne trouve pas trace de ma proposition concernant : Voici ma macro de base: Sub SAUVEGARDER() et en plus aucune macro de ce nom dans les 30 modules qui sont pratiquement vide.... !
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
Modifié par Le Pingou le 17/02/2015 à 21:41
Modifié par Le Pingou le 17/02/2015 à 21:41
Bonsoir,
J'ai pensé que vous me donneriez une explication par rapport à mon message de ce matin.
De plus impossible de faire quoi que ce soit avec des fichiers dont la majorité des feuilles sont masqués.
Salutations.
Le Pingou
J'ai pensé que vous me donneriez une explication par rapport à mon message de ce matin.
De plus impossible de faire quoi que ce soit avec des fichiers dont la majorité des feuilles sont masqués.
Salutations.
Le Pingou
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
18 févr. 2015 à 08:56
18 févr. 2015 à 08:56
Bonjour,
C'est en ordre pour les feuilles masquées.
Par rapport au macro quasi vide ...
Je reprends :
je ne trouve pas trace de ma proposition concernant : Voici ma macro de base: Sub SAUVEGARDER() et en plus aucune macro de ce nom dans les 30 modules qui sont pratiquement vide.... !
1.- Je fais référence à ma proposition du message 1
2.- Selon : Voici ma macro de base: Sub SAUVEGARDER(), elle est introuvable dans les 30 modules dont seul 9 contiennent des procédures.
C'est en ordre pour les feuilles masquées.
Par rapport au macro quasi vide ...
Je reprends :
je ne trouve pas trace de ma proposition concernant : Voici ma macro de base: Sub SAUVEGARDER() et en plus aucune macro de ce nom dans les 30 modules qui sont pratiquement vide.... !
1.- Je fais référence à ma proposition du message 1
2.- Selon : Voici ma macro de base: Sub SAUVEGARDER(), elle est introuvable dans les 30 modules dont seul 9 contiennent des procédures.
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
18 févr. 2015 à 16:18
18 févr. 2015 à 16:18
Bonjour,
Pa simple de comprendre comment fonctionne votre application, cependant est-ce que ce serait correct selon fichier joint : https://www.cjoint.com/?3BsqCnqluI0
Pa simple de comprendre comment fonctionne votre application, cependant est-ce que ce serait correct selon fichier joint : https://www.cjoint.com/?3BsqCnqluI0
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
18 févr. 2015 à 17:37
18 févr. 2015 à 17:37
Bonjour,
Merci pour ce fichier. Cependant ce que je veux dans la mesure du possible c'est un historic avec les numéro de semaine avec le mëme type de tableau que celui dans la feuille historic. Une sorte de recap hebdomaire genre en S6 il y'a 4 jour travaillé 2GD 1PR et ceux pour chaque technicien.
Cdt,
Merci pour ce fichier. Cependant ce que je veux dans la mesure du possible c'est un historic avec les numéro de semaine avec le mëme type de tableau que celui dans la feuille historic. Une sorte de recap hebdomaire genre en S6 il y'a 4 jour travaillé 2GD 1PR et ceux pour chaque technicien.
Cdt,
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
18 févr. 2015 à 17:58
18 févr. 2015 à 17:58
Bonjour,
Ne serait-il pas plus simple de réaliser un petit exemple manuellement avec petit commentaire directement dessus et ensuite le mettre sur ci-joint.com.
Vous ne m'avez pas répondu à : ceci
Ne serait-il pas plus simple de réaliser un petit exemple manuellement avec petit commentaire directement dessus et ensuite le mettre sur ci-joint.com.
Vous ne m'avez pas répondu à : ceci
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
18 févr. 2015 à 18:17
18 févr. 2015 à 18:17
Re,
Voici ce que je souhaite dans la feuille HISTORIC_SEMAINE https://www.cjoint.com/c/EBsszogI8qi
Beaucoup de module c'et vrai on était créé par rapport au tests que j'effectué.
J'espère que ce nouveau fichier vous aidera.
EN attente de vous lire.
Voici ce que je souhaite dans la feuille HISTORIC_SEMAINE https://www.cjoint.com/c/EBsszogI8qi
Beaucoup de module c'et vrai on était créé par rapport au tests que j'effectué.
J'espère que ce nouveau fichier vous aidera.
EN attente de vous lire.
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
19 févr. 2015 à 17:04
19 févr. 2015 à 17:04
Bonjour,
Ma proposition traite les 2 feuilles [HISTO....] via le bouton [Mise à....] , le lien : https://www.cjoint.com/c/EBtrockPjd1
Ma proposition traite les 2 feuilles [HISTO....] via le bouton [Mise à....] , le lien : https://www.cjoint.com/c/EBtrockPjd1
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
19 févr. 2015 à 22:08
19 févr. 2015 à 22:08
BONSOIR,
Merci infiniment pour ce petit bijoux que tu m'as fait. ce dernier fonctionne à la perfection!!!!!!
Une dernière chose, par technicien va se créer une FDT. Ces FDT sont sauvegardées dans C:\FDT\SALARIE\dossier du tech\fichier du tech.xlsm.
Si je viens modifier des valeurs sur ce fichier, je veux pouvoir les sauvegarder sur la FDT source...
Est ce possible?
Cdt,
Merci infiniment pour ce petit bijoux que tu m'as fait. ce dernier fonctionne à la perfection!!!!!!
Une dernière chose, par technicien va se créer une FDT. Ces FDT sont sauvegardées dans C:\FDT\SALARIE\dossier du tech\fichier du tech.xlsm.
Si je viens modifier des valeurs sur ce fichier, je veux pouvoir les sauvegarder sur la FDT source...
Est ce possible?
Cdt,
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
19 févr. 2015 à 23:41
19 févr. 2015 à 23:41
Bonjour,
Content pour vous, avez-vous contrôlé que les données sont correctes ... ?
Content pour vous, avez-vous contrôlé que les données sont correctes ... ?
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
20 févr. 2015 à 10:56
20 févr. 2015 à 10:56
Bonjour,
Eh bien non, en faisant un test plus poussée, il se trouve que les montants en colonne [I] de la feuille [HISTORIC_SEMAINE] sont incorrects et en plus les valeurs de la dernière semaine de la feuille [FTD] sont simplement ignorées par la procédure (faute d'instruction de ma part).
Dans la journée la correction... !
Eh bien non, en faisant un test plus poussée, il se trouve que les montants en colonne [I] de la feuille [HISTORIC_SEMAINE] sont incorrects et en plus les valeurs de la dernière semaine de la feuille [FTD] sont simplement ignorées par la procédure (faute d'instruction de ma part).
Dans la journée la correction... !
Bonjour,
Ton professionnalisme est très apprécié.
Dans la correction pourrais tu y incorporer SI CELA EST POSSIBLE la condition que si une modification s'effectue sur un classeur nommé avec le nom de n'importe quelle technicien celle ci soit prise en compte dans le classeur source FDT?
EN TE REMERCIANT.
CDT,
Ton professionnalisme est très apprécié.
Dans la correction pourrais tu y incorporer SI CELA EST POSSIBLE la condition que si une modification s'effectue sur un classeur nommé avec le nom de n'importe quelle technicien celle ci soit prise en compte dans le classeur source FDT?
EN TE REMERCIANT.
CDT,
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
20 févr. 2015 à 14:53
20 févr. 2015 à 14:53
Bonjour,
C'est non dans ce concept.
Salutations.
Le Pingou
C'est non dans ce concept.
Salutations.
Le Pingou
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
20 févr. 2015 à 15:39
20 févr. 2015 à 15:39
Bonjour,
Voici la version corrigée : https://www.cjoint.com/?3BupXPNCGWS
Voici la version corrigée : https://www.cjoint.com/?3BupXPNCGWS
Bonjour et merci pour cette modification.
Pour la condition peux ton la traduite sous une forme de macro supplémentaire?
De plus serait faire une macro permettant d'une part d'ouvrir une feuille depuis m'importe qu'elle autre feuille. Et enfin une macro supprimant les valeur d'une ligne de n'importe quelle feuille?
En attente de te lire.
Cdt,
Pour la condition peux ton la traduite sous une forme de macro supplémentaire?
De plus serait faire une macro permettant d'une part d'ouvrir une feuille depuis m'importe qu'elle autre feuille. Et enfin une macro supprimant les valeur d'une ligne de n'importe quelle feuille?
En attente de te lire.
Cdt,
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
20 févr. 2015 à 17:49
20 févr. 2015 à 17:49
Bonjour,
Pour la condition peux ton la traduite sous une forme de macro supplémentaire?
C'est incompréhensible.
De plus serait faire une macro permettant d'une part d'ouvrir une feuille depuis m'importe qu'elle autre feuille.
Pas besoin de macro, Il suffit d'insérer un lien hypertexte qui ponte vers la feuille choisi
Et enfin une macro supprimant les valeurs d'une ligne de n'importe quelle feuille?
Cela on le réalise sans macro en sélectionnant la plage des valeurs et ensuite Delete
Pour la condition peux ton la traduite sous une forme de macro supplémentaire?
C'est incompréhensible.
De plus serait faire une macro permettant d'une part d'ouvrir une feuille depuis m'importe qu'elle autre feuille.
Pas besoin de macro, Il suffit d'insérer un lien hypertexte qui ponte vers la feuille choisi
Et enfin une macro supprimant les valeurs d'une ligne de n'importe quelle feuille?
Cela on le réalise sans macro en sélectionnant la plage des valeurs et ensuite Delete
Ce que je voulais dire c'est créé une macro permettant de sauvegarder les donnée modifié non pas sur FDT technicien comme il se doit v mais vers la FDT pour avoir un fichier à jour.
Lors de l'exécution de la macro sauvegarde dans une FDT TECH à la fin demander avant de quitter d'exécuter cette macro.
Cdt
Lors de l'exécution de la macro sauvegarde dans une FDT TECH à la fin demander avant de quitter d'exécuter cette macro.
Cdt
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
20 févr. 2015 à 18:38
20 févr. 2015 à 18:38
Bonjour,
Il serait bien que vous décriviez le travail que vous devez réaliser, ou le concept de l'application car là il me semble que c'est du coup par coup... ou je me trompe.
Il serait bien que vous décriviez le travail que vous devez réaliser, ou le concept de l'application car là il me semble que c'est du coup par coup... ou je me trompe.
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
20 févr. 2015 à 18:52
20 févr. 2015 à 18:52
Bonjour,
Partons d'une feuille FTD vièrge. A la fin de la première semaine, une création d'une FDT par technicien est faite avec l'enregistrement des données de facon hebdomadaire et mensuel. Lors de la deuxième semaine la FDT est remplie via celle déjà créé et non de la FDT source. le HIc c'est que l'historique générale se trouve dans la FDT source, d'où l'importance de créer une macro me permettant de sauvegarder les données modifiées sur les FDT techniciens vers la FDT source.
Sinon tout le reste est ok.
Cdt,
Partons d'une feuille FTD vièrge. A la fin de la première semaine, une création d'une FDT par technicien est faite avec l'enregistrement des données de facon hebdomadaire et mensuel. Lors de la deuxième semaine la FDT est remplie via celle déjà créé et non de la FDT source. le HIc c'est que l'historique générale se trouve dans la FDT source, d'où l'importance de créer une macro me permettant de sauvegarder les données modifiées sur les FDT techniciens vers la FDT source.
Sinon tout le reste est ok.
Cdt,
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
20 févr. 2015 à 22:03
20 févr. 2015 à 22:03
Bonjour,
Merci pour l'explication.
Dans ce cas vous faite le chemin inverse soit du fichier technicien vers l'historique du fichier source en utilisant ma proposition, il faut juste attribuer les bonnes références aux 3 objets [Worhsheet].
En parcourant les divers codes et leur niveau d'écriture dans les modules, j'estime que ce doit être faisable par vos soins.
La procédure de préférence dans le fichier technicien.
Merci pour l'explication.
Dans ce cas vous faite le chemin inverse soit du fichier technicien vers l'historique du fichier source en utilisant ma proposition, il faut juste attribuer les bonnes références aux 3 objets [Worhsheet].
En parcourant les divers codes et leur niveau d'écriture dans les modules, j'estime que ce doit être faisable par vos soins.
La procédure de préférence dans le fichier technicien.
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
21 févr. 2015 à 11:42
21 févr. 2015 à 11:42
Bonjour,
Suite à ta réponse d'hier, j'ai fait une petit modification sur la macro et ceci m'indique toujours une erreur.
Voila ce que j'ai fait:
Sub Renseigner_HISTORIC_global_semaine1()
Dim shso As Worksheets
Dim shcigl
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Dim chemin$, Salarie$, Fichier$
chemin = "C:\FDT\SALARIE\"
client = Sheets("FTD").Range("A2").Value
Fichier = client & " " & Format(Sheets("FTD").Range("F2"), "MM_YYYY")
Const coefGr = 84: Const coefPR = 18
Workbooks.Open FileName:=("C:\FDT\FDT.xlsm")
Set shso = "chemin" & "Fichier" & Sheets("FTD")
shcigl = Workbooks("FDT").Sheets("HISTORIC")
If shso.Range("H40") = "0" Then
MsgBox "Pas de code projet, donc de jour(s) travaillé(s)/de Client et de projet!", vbCritical: Exit Sub
ElseIf shso.Range("A2") = "" Then
MsgBox "Aucun Nom de Salarié en Cellule A2!", vbCritical: Exit Sub
End If
' *** copier les valeurs ou mise à jour des valeurs existantes
With shcigl
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = shso.Range("A2").Value And .Range("B" & c) = shso.Range("F2").Value) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
.Range("A" & liok) = shso.Range("A2").Value
.Range("B" & liok) = shso.Range("F2").Value
.Range("C" & liok) = shso.Range("E40").Value
.Range("D" & liok) = shso.Range("H40").Value
.Range("E" & liok) = shso.Range("I40").Value
.Range("F" & liok) = shso.Range("J40").Value
.Range("G" & liok) = shso.Range("K40").Value
.Range("H" & liok) = (shso.Range("J40").Value * coefGr) + (shso.Range("K40").Value * coefPR)
.Range("I" & liok) = .Range("C" & liok) + .Range("H" & liok)
End With
Renseigner_HISTORIC_semaine shso, coefGr, coefPR
Set shso = Nothing
Set shcigl = Nothing
End Sub
Sub Renseigner_HISTORIC_semaine(shso, coefGr, coefPR)
Dim shcism
Dim tbl(1 To 10) As Variant, ccu As Variant
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Dim smc As Integer, smde As Integer, sm As Integer
Dim fism As Boolean
shcism = worbooks("FDT").Sheets("HISTORIC_SEMAINE")
' *** cumuler et copier les valeurs ou mise à jour des valeurs existantes
smde = Application.Min(shso.Range("c9:c39"))
ccu = Array(0, 5, 8, 9, 10, 11)
smc = smde: fism = False
For li = 9 To 39
If shso.Cells(li + 1, 3).Value <> smc Then fism = True
For c = 1 To 5
tbl(c + 3) = tbl(c + 3) + shso.Cells(li, ccu(c))
Next c
tbl(9) = (tbl(7) * coefGr) + (tbl(8) * coefPR)
tbl(10) = tbl(4) + tbl(9)
If fism Then
If tbl(5) <> 0 Then
tbl(1) = shso.Range("A2").Value
tbl(2) = shso.Range("F2").Value
tbl(3) = smc
With shcism
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = tbl(1) And .Range("B" & c) = tbl(2) And .Range("C" & c) = tbl(3)) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
shcism.Range("A" & liok).Resize(1, UBound(tbl)) = tbl
End With
End If
Erase tbl
smc = smc + 1: fism = False
End If
Next li
MsgBox " Les 2 feuilles [HISTORIQUE MENSUEL/SEMAINE] sont à jour!"
Set shcism = Nothing
End Sub
Suite à ta réponse d'hier, j'ai fait une petit modification sur la macro et ceci m'indique toujours une erreur.
Voila ce que j'ai fait:
Sub Renseigner_HISTORIC_global_semaine1()
Dim shso As Worksheets
Dim shcigl
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Dim chemin$, Salarie$, Fichier$
chemin = "C:\FDT\SALARIE\"
client = Sheets("FTD").Range("A2").Value
Fichier = client & " " & Format(Sheets("FTD").Range("F2"), "MM_YYYY")
Const coefGr = 84: Const coefPR = 18
Workbooks.Open FileName:=("C:\FDT\FDT.xlsm")
Set shso = "chemin" & "Fichier" & Sheets("FTD")
shcigl = Workbooks("FDT").Sheets("HISTORIC")
If shso.Range("H40") = "0" Then
MsgBox "Pas de code projet, donc de jour(s) travaillé(s)/de Client et de projet!", vbCritical: Exit Sub
ElseIf shso.Range("A2") = "" Then
MsgBox "Aucun Nom de Salarié en Cellule A2!", vbCritical: Exit Sub
End If
' *** copier les valeurs ou mise à jour des valeurs existantes
With shcigl
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = shso.Range("A2").Value And .Range("B" & c) = shso.Range("F2").Value) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
.Range("A" & liok) = shso.Range("A2").Value
.Range("B" & liok) = shso.Range("F2").Value
.Range("C" & liok) = shso.Range("E40").Value
.Range("D" & liok) = shso.Range("H40").Value
.Range("E" & liok) = shso.Range("I40").Value
.Range("F" & liok) = shso.Range("J40").Value
.Range("G" & liok) = shso.Range("K40").Value
.Range("H" & liok) = (shso.Range("J40").Value * coefGr) + (shso.Range("K40").Value * coefPR)
.Range("I" & liok) = .Range("C" & liok) + .Range("H" & liok)
End With
Renseigner_HISTORIC_semaine shso, coefGr, coefPR
Set shso = Nothing
Set shcigl = Nothing
End Sub
Sub Renseigner_HISTORIC_semaine(shso, coefGr, coefPR)
Dim shcism
Dim tbl(1 To 10) As Variant, ccu As Variant
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Dim smc As Integer, smde As Integer, sm As Integer
Dim fism As Boolean
shcism = worbooks("FDT").Sheets("HISTORIC_SEMAINE")
' *** cumuler et copier les valeurs ou mise à jour des valeurs existantes
smde = Application.Min(shso.Range("c9:c39"))
ccu = Array(0, 5, 8, 9, 10, 11)
smc = smde: fism = False
For li = 9 To 39
If shso.Cells(li + 1, 3).Value <> smc Then fism = True
For c = 1 To 5
tbl(c + 3) = tbl(c + 3) + shso.Cells(li, ccu(c))
Next c
tbl(9) = (tbl(7) * coefGr) + (tbl(8) * coefPR)
tbl(10) = tbl(4) + tbl(9)
If fism Then
If tbl(5) <> 0 Then
tbl(1) = shso.Range("A2").Value
tbl(2) = shso.Range("F2").Value
tbl(3) = smc
With shcism
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = tbl(1) And .Range("B" & c) = tbl(2) And .Range("C" & c) = tbl(3)) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
shcism.Range("A" & liok).Resize(1, UBound(tbl)) = tbl
End With
End If
Erase tbl
smc = smc + 1: fism = False
End If
Next li
MsgBox " Les 2 feuilles [HISTORIQUE MENSUEL/SEMAINE] sont à jour!"
Set shcism = Nothing
End Sub
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
Modifié par Le Pingou le 21/02/2015 à 17:44
Modifié par Le Pingou le 21/02/2015 à 17:44
Bonjour,
Sans le message d'erreur, impossible de vous répondre.
Avez-vous mis la procédure dans le classeur technicien Oui / Non ?
Salutations.
Le Pingou
Sans le message d'erreur, impossible de vous répondre.
Avez-vous mis la procédure dans le classeur technicien Oui / Non ?
Salutations.
Le Pingou
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
21 févr. 2015 à 17:58
21 févr. 2015 à 17:58
Bonjour,
Oui la procédure a été mise dans le classeur technicien.
Vous trouverez en pièce jointe les deux imprimes avec le message d'erreur et la ligne qui pose problème.
https://www.cjoint.com/c/EBvsi0qPMzU
Cdt,
Oui la procédure a été mise dans le classeur technicien.
Vous trouverez en pièce jointe les deux imprimes avec le message d'erreur et la ligne qui pose problème.
https://www.cjoint.com/c/EBvsi0qPMzU
Cdt,
Le Pingou
Messages postés
12182
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
7 novembre 2024
1 448
22 févr. 2015 à 08:56
22 févr. 2015 à 08:56
Bonjour,
Eh bien c'est normal, comme la procédure est dans le classeur technicien qui est la source des données, sa référence est simplement la feuille de ce classeur soit : Sheets("FTD").
Par contre la cible est le classeur [FDT.xlsm] qui se trouve dans le répertoire et là c'est correct avec [Workbooks("FDT").Sheets("HISTORIC")] par contre la ligne de code doit être [Set shcigl = Workbooks("FDT").Sheets("HISTORIC")] .
Autre point : les noms des variables dans la ligne de définition [Dim chemin$, Salarie$, Fichier$] doivent être identique dans la procédure et ce n'est pas le cas, par exemple [chemin$] différent de [chemin].
Pour finir je me pose une question, si vous avez dans le classeur technicien 2 feuille [Histo...] alors vous devez aussi les mettre à jour tout comme celles du classeur [FDT.xlsm] Oui ou Non ?
Si Oui alors le réaliser dans la même procédure !
Eh bien c'est normal, comme la procédure est dans le classeur technicien qui est la source des données, sa référence est simplement la feuille de ce classeur soit : Sheets("FTD").
Par contre la cible est le classeur [FDT.xlsm] qui se trouve dans le répertoire et là c'est correct avec [Workbooks("FDT").Sheets("HISTORIC")] par contre la ligne de code doit être [Set shcigl = Workbooks("FDT").Sheets("HISTORIC")] .
Autre point : les noms des variables dans la ligne de définition [Dim chemin$, Salarie$, Fichier$] doivent être identique dans la procédure et ce n'est pas le cas, par exemple [chemin$] différent de [chemin].
Pour finir je me pose une question, si vous avez dans le classeur technicien 2 feuille [Histo...] alors vous devez aussi les mettre à jour tout comme celles du classeur [FDT.xlsm] Oui ou Non ?
Si Oui alors le réaliser dans la même procédure !
ksta89
Messages postés
77
Date d'inscription
dimanche 15 février 2015
Statut
Membre
Dernière intervention
9 juin 2015
22 févr. 2015 à 11:38
22 févr. 2015 à 11:38
Bonjour,
J'ai suivi votre facon de faire. Problème: Bon déjà j'ai enlevé mes variables Fichier, client et chemin car elle ne me servait plus à rien. Cependant quand j'éxécute la macro il me dit que la ligne Set shso = sheets("FTD") est incompatibility et la surligne en jaune.
Sub Renseigner_HISTORIC_global_semaine1()
Dim shso As Worksheets
Dim shcigl As Worksheets
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Const coefGr = 84: Const coefPR = 18
Set shso = Sheets("FTD")
Set shcigl = Workbooks("FDT").Sheets("HISTORIC")
If shso.Range("H40") = "0" Then
MsgBox "Pas de code projet, donc de jour(s) travaillé(s)/de Client et de projet!", vbCritical: Exit Sub
ElseIf shso.Range("A2") = "" Then
MsgBox "Aucun Nom de Salarié en Cellule A2!", vbCritical: Exit Sub
End If
' *** copier les valeurs ou mise à jour des valeurs existantes
With shcigl
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = shso.Range("A2").Value And .Range("B" & c) = shso.Range("F2").Value) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
.Range("A" & liok) = shso.Range("A2").Value
.Range("B" & liok) = shso.Range("F2").Value
.Range("C" & liok) = shso.Range("E40").Value
.Range("D" & liok) = shso.Range("H40").Value
.Range("E" & liok) = shso.Range("I40").Value
.Range("F" & liok) = shso.Range("J40").Value
.Range("G" & liok) = shso.Range("K40").Value
.Range("H" & liok) = (shso.Range("J40").Value * coefGr) + (shso.Range("K40").Value * coefPR)
.Range("I" & liok) = .Range("C" & liok) + .Range("H" & liok)
End With
Renseigner_HISTORIC_semaine shso, coefGr, coefPR
Set shso = Nothing
Set shcigl = Nothing
End Sub
Sub Renseigner_HISTORIC_semaine1(shso, coefGr, coefPR)
Dim shcism
Dim tbl(1 To 10) As Variant, ccu As Variant
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Dim smc As Integer, smde As Integer, sm As Integer
Dim fism As Boolean
Set shcism = worbooks("FDT").Sheets("HISTORIC_SEMAINE")
' *** cumuler et copier les valeurs ou mise à jour des valeurs existantes
smde = Application.Min(shso.Range("c9:c39"))
ccu = Array(0, 5, 8, 9, 10, 11)
smc = smde: fism = False
For li = 9 To 39
If shso.Cells(li + 1, 3).Value <> smc Then fism = True
For c = 1 To 5
tbl(c + 3) = tbl(c + 3) + shso.Cells(li, ccu(c))
Next c
tbl(9) = (tbl(7) * coefGr) + (tbl(8) * coefPR)
tbl(10) = tbl(4) + tbl(9)
If fism Then
If tbl(5) <> 0 Then
tbl(1) = shso.Range("A2").Value
tbl(2) = shso.Range("F2").Value
tbl(3) = smc
With shcism
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = tbl(1) And .Range("B" & c) = tbl(2) And .Range("C" & c) = tbl(3)) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
shcism.Range("A" & liok).Resize(1, UBound(tbl)) = tbl
End With
End If
Erase tbl
smc = smc + 1: fism = False
End If
Next li
MsgBox " Les 2 feuilles [HISTORIQUE MENSUEL/SEMAINE] sont à jour!"
Set shcism = Nothing
End Sub
J'ai suivi votre facon de faire. Problème: Bon déjà j'ai enlevé mes variables Fichier, client et chemin car elle ne me servait plus à rien. Cependant quand j'éxécute la macro il me dit que la ligne Set shso = sheets("FTD") est incompatibility et la surligne en jaune.
Sub Renseigner_HISTORIC_global_semaine1()
Dim shso As Worksheets
Dim shcigl As Worksheets
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Const coefGr = 84: Const coefPR = 18
Set shso = Sheets("FTD")
Set shcigl = Workbooks("FDT").Sheets("HISTORIC")
If shso.Range("H40") = "0" Then
MsgBox "Pas de code projet, donc de jour(s) travaillé(s)/de Client et de projet!", vbCritical: Exit Sub
ElseIf shso.Range("A2") = "" Then
MsgBox "Aucun Nom de Salarié en Cellule A2!", vbCritical: Exit Sub
End If
' *** copier les valeurs ou mise à jour des valeurs existantes
With shcigl
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = shso.Range("A2").Value And .Range("B" & c) = shso.Range("F2").Value) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
.Range("A" & liok) = shso.Range("A2").Value
.Range("B" & liok) = shso.Range("F2").Value
.Range("C" & liok) = shso.Range("E40").Value
.Range("D" & liok) = shso.Range("H40").Value
.Range("E" & liok) = shso.Range("I40").Value
.Range("F" & liok) = shso.Range("J40").Value
.Range("G" & liok) = shso.Range("K40").Value
.Range("H" & liok) = (shso.Range("J40").Value * coefGr) + (shso.Range("K40").Value * coefPR)
.Range("I" & liok) = .Range("C" & liok) + .Range("H" & liok)
End With
Renseigner_HISTORIC_semaine shso, coefGr, coefPR
Set shso = Nothing
Set shcigl = Nothing
End Sub
Sub Renseigner_HISTORIC_semaine1(shso, coefGr, coefPR)
Dim shcism
Dim tbl(1 To 10) As Variant, ccu As Variant
Dim c As Integer, deli As Integer, li As Integer, liok As Integer
Dim smc As Integer, smde As Integer, sm As Integer
Dim fism As Boolean
Set shcism = worbooks("FDT").Sheets("HISTORIC_SEMAINE")
' *** cumuler et copier les valeurs ou mise à jour des valeurs existantes
smde = Application.Min(shso.Range("c9:c39"))
ccu = Array(0, 5, 8, 9, 10, 11)
smc = smde: fism = False
For li = 9 To 39
If shso.Cells(li + 1, 3).Value <> smc Then fism = True
For c = 1 To 5
tbl(c + 3) = tbl(c + 3) + shso.Cells(li, ccu(c))
Next c
tbl(9) = (tbl(7) * coefGr) + (tbl(8) * coefPR)
tbl(10) = tbl(4) + tbl(9)
If fism Then
If tbl(5) <> 0 Then
tbl(1) = shso.Range("A2").Value
tbl(2) = shso.Range("F2").Value
tbl(3) = smc
With shcism
deli = .Cells(Rows.Count, 1).End(xlUp).Row
If deli > 5 Then
For c = 6 To deli
If (.Range("A" & c) = tbl(1) And .Range("B" & c) = tbl(2) And .Range("C" & c) = tbl(3)) Then
liok = c
Exit For
End If
liok = c + 1
Next c
Else
liok = deli + 1
End If
shcism.Range("A" & liok).Resize(1, UBound(tbl)) = tbl
End With
End If
Erase tbl
smc = smc + 1: fism = False
End If
Next li
MsgBox " Les 2 feuilles [HISTORIQUE MENSUEL/SEMAINE] sont à jour!"
Set shcism = Nothing
End Sub
16 févr. 2015 à 15:16
16 févr. 2015 à 15:17