Macro qui ne fonctionne qu'une fois
Résolu/Fermé
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
-
Modifié par pijaku le 24/02/2015 à 07:46
idro6 Messages postés 13 Date d'inscription lundi 23 février 2015 Statut Membre Dernière intervention 24 février 2015 - 24 févr. 2015 à 15:58
idro6 Messages postés 13 Date d'inscription lundi 23 février 2015 Statut Membre Dernière intervention 24 février 2015 - 24 févr. 2015 à 15:58
A voir également:
- Macro qui ne fonctionne qu'une fois
- Macro logiciel - Télécharger - Organisation
- Qu'est ce qu'une femme fait 3 fois par jour - Forum Loisirs / Divertissements
- Macro recorder - Télécharger - Confidentialité
- Macro Recorder - Télécharger - Divers Utilitaires
- Lancer une macro dans une macro - Astuces et Solutions
11 réponses
Normad
Messages postés
112
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 juin 2015
37
24 févr. 2015 à 07:16
24 févr. 2015 à 07:16
Bonjour,
L'erreur est probablement liée à la protection de la feuille..
L'erreur est probablement liée à la protection de la feuille..
Bonjour à tous
peut-être un problème de référencement des range ou cells par rapport à la feuille.
à tester
A+
peut-être un problème de référencement des range ou cells par rapport à la feuille.
à tester
....
With Sheets("Tableau = Tous les devis")
.Range("A4:F203").Clear
Do Until i = 206
If Sheets("Devis réalisés").Cells(i, 2) <> "" Then
.Cells(j, 1) = Sheets("Devis réalisés").Cells(i, 1).Value
.Cells(j, 2) = Sheets("Devis réalisés").Cells(i, 2).Value
.Cells(j, 3) = Sheets("Devis réalisés").Cells(i, 3).Value
.Cells(j, 4) = Sheets("Devis réalisés").Cells(i, 5).Value
.Cells(j, 5) = Sheets("!").Cells(i, 26)
.Cells(j, 6) = Sheets("Devis réalisés").Cells(i, 8)
Range(.Cells(j, 1), .Cells(j, 1)).Borders.Value = 1
Range(.Cells(j, 2), .Cells(j, 2)).Borders.Value = 1
Range(.Cells(j, 3), .Cells(j, 3)).Borders.Value = 1
Range(.Cells(j, 4), .Cells(j, 4)).Borders.Value = 1
Range(.Cells(j, 5), .Cells(j, 5)).Borders.Value = 1
Range(.Cells(j, 6), .Cells(j, 6)).Borders.Value = 1
...
End If
End With
...
A+
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 11:31
24 févr. 2015 à 11:31
Bonjour,
Malheureusement toujours le même message d'erreur s'affiche
Malheureusement toujours le même message d'erreur s'affiche
re
a priori trouvé:
en conservant le With .. End With, remplacer les 6 lignes de mise en forme de bordure par
.Range(Cells(j, 1).Address, Cells(j, 6).Address).Borders.Value = 1
A+
a priori trouvé:
en conservant le With .. End With, remplacer les 6 lignes de mise en forme de bordure par
.Range(Cells(j, 1).Address, Cells(j, 6).Address).Borders.Value = 1
A+
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 12:27
24 févr. 2015 à 12:27
Non plus le problème vient cette fois ci de la ligne Clear.
Le problème viendrait de Range et se déclenche dès qu'une autre macro est lancé sur la feuille. La macro de la feuille est un bouton retour qui me permet de retourner à ma feuille principale là ou se font toute les saisies et c'est lorsque je clique sur ce bouton que range devient impossible si je change de page manuellement il n'y a pas de problème et en lançant les macros sur les autres feuille et en revenant dans la feuille du tableau il n'y a pas de problème.
Le problème viendrait de Range et se déclenche dès qu'une autre macro est lancé sur la feuille. La macro de la feuille est un bouton retour qui me permet de retourner à ma feuille principale là ou se font toute les saisies et c'est lorsque je clique sur ce bouton que range devient impossible si je change de page manuellement il n'y a pas de problème et en lançant les macros sur les autres feuille et en revenant dans la feuille du tableau il n'y a pas de problème.
Le mieux, c'est de joindre votre classeur sans données sensibles pour voir les interactions des autres macros.
A+
A+
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 12:43
24 févr. 2015 à 12:43
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 12:44
24 févr. 2015 à 12:44
en voici une version contenant utilisant ce que vous avez corrigé dans la feuille "Tableau = Tous les devis"
Merci de votre aide
Merci de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
Désolé, j'ai parcouru les feuilles et les userform dans tous les sens : pas d'anomalies.
Je vous met le code modifié de la Private Sub Worksheet_Activate() de la feuille Tableau = Tous les devis pour éviter de parcourir plus de 200 lignes pour rien. J'ai supprimé le référencement à la feuille puisque l'on se trouve dans la feuille concernée.
Refaite des essais sur votre classeur transmis (qui n'est sans doute pas le classeur original)
Si ça ne se reproduisait pas : anomalie au niveau du classeur original
Si ça se reproduite : Nouveau message avec exactement le procédure suivie amenant cette anomalie.
A+
Désolé, j'ai parcouru les feuilles et les userform dans tous les sens : pas d'anomalies.
Je vous met le code modifié de la Private Sub Worksheet_Activate() de la feuille Tableau = Tous les devis pour éviter de parcourir plus de 200 lignes pour rien. J'ai supprimé le référencement à la feuille puisque l'on se trouve dans la feuille concernée.
Private Sub Worksheet_Activate()
Dim DerLig As Integer
Dim j As Integer
Dim As Integer
j = 4
DerLig = Sheets("Devis réalisés").Range("A" & Rows.Count).End(xlUp).Row
Range("A4:F203").Clear
For i = 7 To DerLig
If Sheets("Devis réalisés").Cells(i, 4) <> "" Then
Cells(j, 1) = Sheets("Devis réalisés").Cells(i, 1).Value
Cells(j, 2) = Sheets("Devis réalisés").Cells(i, 2).Value
Cells(j, 3) = Sheets("Devis réalisés").Cells(i, 3).Value
Cells(j, 4) = Sheets("Devis réalisés").Cells(i, 5).Value
Cells(j, 5) = Sheets("!").Cells(i, 26)
Cells(j, 6) = Sheets("Devis réalisés").Cells(i, 8)
Range(Cells(j, 1).Address, Cells(j, 6).Address).Borders.Value = 1
j = j + 1
End If
Next
End Sub
Refaite des essais sur votre classeur transmis (qui n'est sans doute pas le classeur original)
Si ça ne se reproduisait pas : anomalie au niveau du classeur original
Si ça se reproduite : Nouveau message avec exactement le procédure suivie amenant cette anomalie.
A+
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 14:14
24 févr. 2015 à 14:14
Très bien, merci de ton aide, le changement entre les feuille se fera manuellement du coup afin qu'il n'y ai pas de macro dans la même feuille qui fasse bugger le programme.
Merci beaucoup,
Bonne journée.
Merci beaucoup,
Bonne journée.
A noter :
dans le dernier code fourni, supprimer Dim As Integer, reliquat de modification
par ailleurs la Private Sub Worksheet_Activate() de la feuille Tableau = Devis validés met à jour la feuille Tableau = Tous les devis ( mais ça ne provoque pas d'erreur
Bonne suite
dans le dernier code fourni, supprimer Dim As Integer, reliquat de modification
par ailleurs la Private Sub Worksheet_Activate() de la feuille Tableau = Devis validés met à jour la feuille Tableau = Tous les devis ( mais ça ne provoque pas d'erreur
Bonne suite
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 14:42
24 févr. 2015 à 14:42
Toujours le même problème, le changement des feuilles se fera en manuel du coup ce n'est pas grave.
En tout cas merci d'avoir pris le temps de m'aider.
En tout cas merci d'avoir pris le temps de m'aider.
pouvez décrire (comme demandé plus haut) précisemment les manipulations effectuées qui provoquent le plantage, afin que je les exécute sur votre classeur d'essai ?
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 14:54
24 févr. 2015 à 14:54
Sur la première page, "Editeur de tableaux" -> "Tous les devis", "Retour au menu principal" et refaire la manip. Alors que en changeant de feuille manuellement il n'y a pas de problème.
Le problème arrive lorsque l'on fait appel à une macro sur la même feuille
Le problème arrive lorsque l'on fait appel à une macro sur la même feuille
Sur le classeur d'essais transmis, aucune anomalie en suivant votre procédure!
vous avez procéder aux tests sur le fichier origine ou sur le classeur transmis?
vous avez procéder aux tests sur le fichier origine ou sur le classeur transmis?
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 15:19
24 févr. 2015 à 15:19
je n'ai pas précisé que j'utilise une version excel 97
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 15:26
24 févr. 2015 à 15:26
oui j'ai fais des tests et cela ne fonctionne pas, quelle version d'excel possédez vous ?
Je vais faire comme vous: éluder la question
ma question n'était pas de savoir si vous aviez fait des tests , mais de savoir si les tests avaient été fait sur le classeur original ou le classeur mis en ligne
ma question n'était pas de savoir si vous aviez fait des tests , mais de savoir si les tests avaient été fait sur le classeur original ou le classeur mis en ligne
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 15:50
24 févr. 2015 à 15:50
Les deux, aucun ne fonctionne.
alors effectivement, peut-être un problème de version Excel ??
Je n'ai plus Excel 97
Je n'ai plus Excel 97
idro6
Messages postés
13
Date d'inscription
lundi 23 février 2015
Statut
Membre
Dernière intervention
24 février 2015
24 févr. 2015 à 15:58
24 févr. 2015 à 15:58
Merci de m'avoir éclairé.
24 févr. 2015 à 08:57
La feuille n'est pas protégé