Macro qui ne fonctionne qu'une fois
Résolu
idro6
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
idro6 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
idro6 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Macro qui ne fonctionne qu'une fois
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Tv lg ne s'allume plus voyant clignote 3 fois - Forum Ecran
- Imprimer plusieurs fois la même image sur une page ✓ - Forum Logiciels
11 réponses
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+
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+
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+
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+
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
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 ?
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?
La feuille n'est pas protégé