Macro BVA- Incompatibilité de type
Résolu/Fermé
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
-
3 juin 2020 à 16:02
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 - 5 juin 2020 à 07:47
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 - 5 juin 2020 à 07:47
A voir également:
- Incompatibilité de type vba
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Faiblesse type spectre ✓ - Forum Jeux vidéo
- Clear type - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
7 réponses
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
3 juin 2020 à 16:07
3 juin 2020 à 16:07
Bonjour
Difficile de t'aider sans voir
Envoies ton fichier sur https://mon-partage.fr/ et joins le lien obtenu à ton prochain message
Cdlmnt
Difficile de t'aider sans voir
Envoies ton fichier sur https://mon-partage.fr/ et joins le lien obtenu à ton prochain message
Cdlmnt
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
Modifié le 3 juin 2020 à 16:29
Modifié le 3 juin 2020 à 16:29
Première fois que j'utilise le forum désolé
voici un lien Google Drive : https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/drive/folders/1FHPzEgLMIo-Fx7RQ1G8J3BMFlzC_k6Zk?usp%3Dsharing&followup=https://drive.google.com/drive/folders/1FHPzEgLMIo-Fx7RQ1G8J3BMFlzC_k6Zk?usp%3Dsharing
La macro s'appelle Planning_1
et pour l'executer il faut cliquer sur le case RESULTAT dans la feuille Données
voici un lien Google Drive : https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/drive/folders/1FHPzEgLMIo-Fx7RQ1G8J3BMFlzC_k6Zk?usp%3Dsharing&followup=https://drive.google.com/drive/folders/1FHPzEgLMIo-Fx7RQ1G8J3BMFlzC_k6Zk?usp%3Dsharing
La macro s'appelle Planning_1
et pour l'executer il faut cliquer sur le case RESULTAT dans la feuille Données
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
3 juin 2020 à 16:30
3 juin 2020 à 16:30
Utilises le service de https://mon-partage.fr/ pour envoyer ton fichier
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
3 juin 2020 à 16:31
3 juin 2020 à 16:31
La prochaine fois, évite de passer par Google !
Il y a soit le lien fourni par ccm81, soit celui-ci :
https://www.cjoint.com/
Il y a soit le lien fourni par ccm81, soit celui-ci :
https://www.cjoint.com/
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
3 juin 2020 à 16:35
3 juin 2020 à 16:35
ok
Pourquoi Google n'est pas bien ?
https://www.cjoint.com/c/JFdoINqANZn
Pourquoi Google n'est pas bien ?
https://www.cjoint.com/c/JFdoINqANZn
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
3 juin 2020 à 17:19
3 juin 2020 à 17:19
Non, pas là car il faut demander l'accès au fichier, c'est une perte de temps ;)
J'ai regardé ton fichier, lancé toutes les macros (OMG) et je n'ai rien décelé.
à quel moment il y a un problème, quand tu fais/lances quoi ?
J'ai regardé ton fichier, lancé toutes les macros (OMG) et je n'ai rien décelé.
à quel moment il y a un problème, quand tu fais/lances quoi ?
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
>
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
Modifié le 3 juin 2020 à 17:50
Modifié le 3 juin 2020 à 17:50
Merci de la réponse.
Et bien quand plusieurs Tache sont affichées (exemple : Tache A, Tache B et Tache C) et que je lance la macro Toutes_ensemble avec le bouton RESULTAT sur la page Données, un message d'erreur s'affiche : Incompatibilité de type
L'incompatibilité de type est sur le début d'un SI (Macro Planning_1) qui est le chiffre d'après celui dans la cellule Données!D9. et si je change d'un nombre en D9, l'erreur se déplace d'un nombre aussi...
Ex : j'ai saisi 1 dans Données!D9
Incompatibilité de type pour SI Données!C9 = 2 FAIRE
C'est peut-être le fait de les lancer toute en même temps qui pose problème ?
Et bien quand plusieurs Tache sont affichées (exemple : Tache A, Tache B et Tache C) et que je lance la macro Toutes_ensemble avec le bouton RESULTAT sur la page Données, un message d'erreur s'affiche : Incompatibilité de type
L'incompatibilité de type est sur le début d'un SI (Macro Planning_1) qui est le chiffre d'après celui dans la cellule Données!D9. et si je change d'un nombre en D9, l'erreur se déplace d'un nombre aussi...
Ex : j'ai saisi 1 dans Données!D9
Incompatibilité de type pour SI Données!C9 = 2 FAIRE
C'est peut-être le fait de les lancer toute en même temps qui pose problème ?
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
Modifié le 3 juin 2020 à 18:14
Modifié le 3 juin 2020 à 18:14
C'est normal, tu dis à ta macro SI D9 = 6 mais ça ne fonctionne pas tout comme ça aurait bloqué avant SI D9 = 2 ;)
Correctif avec des Else ("sinon") :
Correctif avec des Else ("sinon") :
Sub Planning_1()
'
'Planning_1 Macro
'
'
If Range("B9") = "Tache A" Then
If Range("D9") = 1 Then
Sheets("Banque_de_données").Select
Range("C7:F7").Copy
Sheets("Planning").Select
Range("A9:D9").Select
ActiveSheet.Paste
Else
If Range("D9") = 2 Then
Sheets("Banque_de_données").Select
Range("C7:F8").Copy
Sheets("Planning").Select
Range("A9:D10").Select
ActiveSheet.Paste
Else
If Range("D9") = 3 Then
Sheets("Banque_de_données").Select
Range("C7:F9").Copy
Sheets("Planning").Select
Range("A9:D11").Select
ActiveSheet.Paste
Else
If Range("D9") = 4 Then
Sheets("Banque_de_données").Select
Range("C7:F10").Copy
Sheets("Planning").Select
Range("A9:D12").Select
ActiveSheet.Paste
Else
If Range("D9") = 5 Then
Sheets("Banque_de_données").Select
Range("C7:F11").Copy
Sheets("Planning").Select
Range("A9").Select
ActiveSheet.Paste
Else
If Range("D9") = 6 Then
Sheets("Banque_de_données").Select
Range("C7:F12").Copy
Sheets("Planning").Select
Range("A9:D14").Select
ActiveSheet.Paste
End If
End If
End If
End If
End If
End If
End If
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
Modifié le 4 juin 2020 à 11:58
Modifié le 4 juin 2020 à 11:58
Merci beaucoup pour ces explications !
Bonne journée
Bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
Modifié le 3 juin 2020 à 20:34
Modifié le 3 juin 2020 à 20:34
> A_0504.
1. Beaucoup à redire dans le code, en particulier une foule de Select qui ne sont pas utiles
Par exemple dans ton module 3, la procédure Tache_B() qu'on peut démarrer comme ceci (les bordures peuvent être traitées en bloc
2. J'ai un peu simplifié le code proposé par Yoyo1000 en évitant les If ... Then ... else
Cdlmnt
1. Beaucoup à redire dans le code, en particulier une foule de Select qui ne sont pas utiles
Par exemple dans ton module 3, la procédure Tache_B() qu'on peut démarrer comme ceci (les bordures peuvent être traitées en bloc
Sub Tache_BB() ' ' Tache_B Macro ' Sheets("Données").Select Range("B10").Value = "Tache B" Range("C10").Value = "0" Range("D10").FormulaLocal = "=SI(C10<$H$9*$F$11+1;1;SI(C10<2*$H$9*$F$11+1;2;SI(C10<3*$H$9*$F$11+1;3;SI(C10<4*$H$9*$F$11+1;4;SI(C10<5*$H$9*$F$11+1;5;SI(C10<6*$H$9*$F$11+1;6;SI(C10<7*$H$9*$F$11+1;7;SI(C10<8*$H$9*$F$11+1;8;""MO non-disponible""))))))))" With Range("C10:D10").Borders .LineStyle = xlContinuous .ColorIndex = 0 .Weight = xlThin End With ..... End Sub
2. J'ai un peu simplifié le code proposé par Yoyo1000 en évitant les If ... Then ... else
Option Explicit Sub Planning_1() ' 'Planning_1 Macro ' If Range("B9") = "Tache A" Then Sheets("Banque_de_données").Select Select Case Range("B9").Value Case 1: Range("C7:F7").Copy Sheets("Planning").Select Range("A9:D9").Select ActiveSheet.Paste Case 2: Range("C7:F8").Copy Sheets("Planning").Select Range("A9:D10").Select ActiveSheet.Paste Case 3: Range("C7:F9").Copy Sheets("Planning").Select Range("A9:D11").Select ActiveSheet.Paste Case 4: Range("C7:F10").Copy Sheets("Planning").Select Range("A9:D12").Select ActiveSheet.Paste Case 5: Range("C7:F11").Copy Sheets("Planning").Select Range("A9").Select ActiveSheet.Paste Case 6: Range("C7:F12").Copy Sheets("Planning").Select Range("A9:D14").Select ActiveSheet.Paste End Select End If End Sub
Cdlmnt
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
3 juin 2020 à 21:21
3 juin 2020 à 21:21
Une erreur ici
Select Case Range("B9").Value
lire
Select Case Range("D9").Value
Cdlmnt
Select Case Range("B9").Value
lire
Select Case Range("D9").Value
Cdlmnt
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
3 juin 2020 à 21:47
3 juin 2020 à 21:47
Bonsoir ccm81, je n'ai pas pris le temps d’alléger son code car il y avait matière à !
Et puis, j'ai pensé qu'il est plus compréhensif pour lui, malgré cette énorme quantité de .Select(ion) :)
Bonne soirée à vous.
Et puis, j'ai pensé qu'il est plus compréhensif pour lui, malgré cette énorme quantité de .Select(ion) :)
Bonne soirée à vous.
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
Modifié le 4 juin 2020 à 11:44
Modifié le 4 juin 2020 à 11:44
Oui je pense bien qu'il est possible d'alléger tout ca car je vient de commencer à coder en VBA donc je ne connais pas tout :(
Et pour me justifier sur le nombre de répétition, c'est juste que j'ai copier-coller le code que j'avais fait pour une solution pour toute les autres.
Mais merci beaucoup pour le code je vais essayer ca de suite !
Bonne journée
Et pour me justifier sur le nombre de répétition, c'est juste que j'ai copier-coller le code que j'avais fait pour une solution pour toute les autres.
Mais merci beaucoup pour le code je vais essayer ca de suite !
Bonne journée
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
4 juin 2020 à 11:51
4 juin 2020 à 11:51
J'ai essayer ton code mais il ne fonctionnent pas, il ne donne q'une seul personne en final dans la feuille planning. Mais pas de soucis j'ai pris celui de Yoyo qui fonctionne très bien.
Merci de ton aide malgré tout
Merci de ton aide malgré tout
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
Modifié le 4 juin 2020 à 12:05
Modifié le 4 juin 2020 à 12:05
Il y a l'erreur remarquée par ccm81 et il y en avait une autre :
Range("A9:").Select => Range("A9:D13").Select
à retester
Au passage, ccm81, quelle balise de code utilises-tu pour VBA ?
Range("A9:").Select => Range("A9:D13").Select
If Range("B9") = "Tache A" Then
Sheets("Banque_de_données").Select
Select Case Range("D9").Value
Case 1: Range("C7:F7").Copy
Sheets("Planning").Select
Range("A9:D9").Select
ActiveSheet.Paste
Case 2: Range("C7:F8").Copy
Sheets("Planning").Select
Range("A9:D10").Select
ActiveSheet.Paste
Case 3: Range("C7:F9").Copy
Sheets("Planning").Select
Range("A9:D11").Select
ActiveSheet.Paste
Case 4: Range("C7:F10").Copy
Sheets("Planning").Select
Range("A9:D12").Select
ActiveSheet.Paste
Case 5: Range("C7:F11").Copy
Sheets("Planning").Select
Range("A9:D13").Select
ActiveSheet.Paste
Case 6: Range("C7:F12").Copy
Sheets("Planning").Select
Range("A9:D14").Select
ActiveSheet.Paste
End Select
End If
à retester
Au passage, ccm81, quelle balise de code utilises-tu pour VBA ?
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
Modifié le 4 juin 2020 à 19:59
Modifié le 4 juin 2020 à 19:59
Salut Yoyo01000
1. Merci d'avoir corrigé l'erreur (le doigt a du rester un peu trop sur la touche Suppr)
2. Pour la balise de code c'est l’icône flèche vers le bas (l'avant dernière) et tu choisis Basic
3. Le mieux, c'est de tout mettre dans la même macro ! Sinon, en condensé, tu utilises Call en lui attribuant le nom du module & de la macro.
Le plus simple, mettre la procédure/fonction dans un module général (Module 1, ...) et de les déclarer publiques pour éviter lors d'un appel de préciser le module
Bonne soirée à toi
1. Merci d'avoir corrigé l'erreur (le doigt a du rester un peu trop sur la touche Suppr)
2. Pour la balise de code c'est l’icône flèche vers le bas (l'avant dernière) et tu choisis Basic
3. Le mieux, c'est de tout mettre dans la même macro ! Sinon, en condensé, tu utilises Call en lui attribuant le nom du module & de la macro.
Le plus simple, mettre la procédure/fonction dans un module général (Module 1, ...) et de les déclarer publiques pour éviter lors d'un appel de préciser le module
Bonne soirée à toi
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
>
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
5 juin 2020 à 07:47
5 juin 2020 à 07:47
Merci ccm81 :)
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
4 juin 2020 à 12:08
4 juin 2020 à 12:08
J'ai un autre petit problème : saurez-vous comment exécuter plusieurs macro en même temps grâce à une macro ?
Merci
cordialement
Merci
cordialement
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
4 juin 2020 à 12:20
4 juin 2020 à 12:20
Le mieux, c'est de tout mettre dans la même macro ! Sinon, en condensé, tu utilises Call en lui attribuant le nom du module & de la macro.
A_0504
Messages postés
9
Date d'inscription
mercredi 3 juin 2020
Statut
Membre
Dernière intervention
4 juin 2020
>
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
4 juin 2020 à 14:48
4 juin 2020 à 14:48
Ok super merci !