Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreure incompréhensible dans une macro

8 réponses
Avatar
escoune
Tout d'abord salut =E0 tous :)

Voici maintenant 2 jours que je cherche =E0 r=E9soudre une erreure dans
mon code. Pour information, la partie qui bugg marchait tr=E8s bien
auparavant et maintenant ne veut plus marcher alors que je n'ai pas
chang=E9 de post. J'ai essay=E9 de rajouter le workbooks en instruction,
d'enlever le worksheets, rien n'y fait. J'ai m=EAme rajout=E9 l'argument
Across (qui est pourtant facultatif) en lui donnant sa valeur de base.

Alors si quelqu'un pouvait regarder si il apercevait l'erreur ca serait
grandement sympa :)
Les lignes qui buggent sont les instructions de fusions de cellules :
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge

Voici le d=E9but de mon code :

Private Sub jalon_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Fin As Integer
Dim Fin2 As Integer
Fin =3D Worksheets("Trame").Range("A65536").End(xlUp).Row
Fin2 =3D Worksheets("Dossier").Range("F65536").End(xlUp).Row
Debut =3D 11

'On demande =E0 l'utilisateur de confirmer son choix
Avertissement =3D MsgBox("=CAtes vous s=FBr de vouloir g=E9n=E9rer les
t=E2ches standardes? Ceci effacera toutes les t=E2ches en cours", 308,
"G=E9n=E9ration des t=E2ches standardes")
If Avertissement =3D 6 Then

'Si la date de prise en charge du dossier est vide on la remplit
If Worksheets("Dossier").Cells(1, 4) =3D "" Then
Worksheets("Dossier").Cells(1, 4) =3D Date

'On efface tout si il y a au moins une valeur
If Range("A13") <> "" Then Worksheets("Dossier").Range("A" & Debut
& ":I" & Fin2).Delete Shift:=3DxlShiftUp
'On parcourt le tableau des t=E2ches standardes du d=E9but =E0 la fin
For i =3D Debut To Fin

'On r=E9cup=E8re la valeur de la derni=E8re ligne remplie
Fin2 =3D
Worksheets("Dossier").Range("A65536").End(xlUp).Offset(1, 0).Row
'On ins=E8re une nouvelle ligne
Worksheets("Dossier").Range("A" & Fin2 + 1 & ":I" & Fin2 +
1).Insert Shift:=3DxlShiftDown
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge
'On copie la valeur
Worksheets("Dossier").Cells(Fin2, 1) =3D
Worksheets("Trame").Cells(i, 1)
Worksheets("Dossier").Cells(Fin2, 2) =3D
Worksheets("Trame").Cells(i, 2)
Worksheets("Dossier").Cells(Fin2, 6) =3D "NF"
=20
Next i


Merci d'avance

8 réponses

Avatar
Paul V
Bonjour à tous,

A première lecture, il n'y a pas d'erreur ;-)

La boucle pourrait être optimisée mais cela ne changerait rien à ton
problème.

J'ai l'intuition que le problème réside dans l'état actuel de ton dossier et
te suggère d'essayer ta macro dans un nouveau fichier car il doit y avoir un
parasite quelque part dans ton fichier.

Pour t'aider plus ou tester, il faudrait mettre ton fichier sur Cjoint.

A+

PaulV

a écrit dans le message de news:

Tout d'abord salut à tous :)

Voici maintenant 2 jours que je cherche à résoudre une erreure dans
mon code. Pour information, la partie qui bugg marchait très bien
auparavant et maintenant ne veut plus marcher alors que je n'ai pas
changé de post. J'ai essayé de rajouter le workbooks en instruction,
d'enlever le worksheets, rien n'y fait. J'ai même rajouté l'argument
Across (qui est pourtant facultatif) en lui donnant sa valeur de base.

Alors si quelqu'un pouvait regarder si il apercevait l'erreur ca serait
grandement sympa :)
Les lignes qui buggent sont les instructions de fusions de cellules :
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge

Voici le début de mon code :

Private Sub jalon_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Fin As Integer
Dim Fin2 As Integer
Fin = Worksheets("Trame").Range("A65536").End(xlUp).Row
Fin2 = Worksheets("Dossier").Range("F65536").End(xlUp).Row
Debut = 11

'On demande à l'utilisateur de confirmer son choix
Avertissement = MsgBox("Êtes vous sûr de vouloir générer les
tâches standardes? Ceci effacera toutes les tâches en cours", 308,
"Génération des tâches standardes")
If Avertissement = 6 Then

'Si la date de prise en charge du dossier est vide on la remplit
If Worksheets("Dossier").Cells(1, 4) = "" Then
Worksheets("Dossier").Cells(1, 4) = Date

'On efface tout si il y a au moins une valeur
If Range("A13") <> "" Then Worksheets("Dossier").Range("A" & Debut
& ":I" & Fin2).Delete Shift:=xlShiftUp
'On parcourt le tableau des tâches standardes du début à la fin
For i = Debut To Fin

'On récupère la valeur de la dernière ligne remplie
Fin2 Worksheets("Dossier").Range("A65536").End(xlUp).Offset(1, 0).Row
'On insère une nouvelle ligne
Worksheets("Dossier").Range("A" & Fin2 + 1 & ":I" & Fin2 +
1).Insert Shift:=xlShiftDown
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge
'On copie la valeur
Worksheets("Dossier").Cells(Fin2, 1) Worksheets("Trame").Cells(i, 1)
Worksheets("Dossier").Cells(Fin2, 2) Worksheets("Trame").Cells(i, 2)
Worksheets("Dossier").Cells(Fin2, 6) = "NF"

Next i


Merci d'avance
Avatar
escoune
Je le mettrais ce soir (actuellement le proxy de mon travail m'empêche
d'y accéder).
Merci bien.


Bonjour à tous,

A première lecture, il n'y a pas d'erreur ;-)

La boucle pourrait être optimisée mais cela ne changerait rien à ton
problème.

J'ai l'intuition que le problème réside dans l'état actuel de ton d ossier et
te suggère d'essayer ta macro dans un nouveau fichier car il doit y avo ir un
parasite quelque part dans ton fichier.

Pour t'aider plus ou tester, il faudrait mettre ton fichier sur Cjoint.

A+

PaulV

a écrit dans le message de news:

Tout d'abord salut à tous :)

Voici maintenant 2 jours que je cherche à résoudre une erreure dans
mon code. Pour information, la partie qui bugg marchait très bien
auparavant et maintenant ne veut plus marcher alors que je n'ai pas
changé de post. J'ai essayé de rajouter le workbooks en instruction,
d'enlever le worksheets, rien n'y fait. J'ai même rajouté l'argument
Across (qui est pourtant facultatif) en lui donnant sa valeur de base.

Alors si quelqu'un pouvait regarder si il apercevait l'erreur ca serait
grandement sympa :)
Les lignes qui buggent sont les instructions de fusions de cellules :
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge

Voici le début de mon code :

Private Sub jalon_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Fin As Integer
Dim Fin2 As Integer
Fin = Worksheets("Trame").Range("A65536").End(xlUp).Row
Fin2 = Worksheets("Dossier").Range("F65536").End(xlUp).Row
Debut = 11

'On demande à l'utilisateur de confirmer son choix
Avertissement = MsgBox("Êtes vous sûr de vouloir générer les
tâches standardes? Ceci effacera toutes les tâches en cours", 308,
"Génération des tâches standardes")
If Avertissement = 6 Then

'Si la date de prise en charge du dossier est vide on la remplit
If Worksheets("Dossier").Cells(1, 4) = "" Then
Worksheets("Dossier").Cells(1, 4) = Date

'On efface tout si il y a au moins une valeur
If Range("A13") <> "" Then Worksheets("Dossier").Range("A" & Debut
& ":I" & Fin2).Delete Shift:=xlShiftUp
'On parcourt le tableau des tâches standardes du début à la fin
For i = Debut To Fin

'On récupère la valeur de la dernière ligne remplie
Fin2 =
Worksheets("Dossier").Range("A65536").End(xlUp).Offset(1, 0).Row
'On insère une nouvelle ligne
Worksheets("Dossier").Range("A" & Fin2 + 1 & ":I" & Fin2 +
1).Insert Shift:=xlShiftDown
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge
'On copie la valeur
Worksheets("Dossier").Cells(Fin2, 1) =
Worksheets("Trame").Cells(i, 1)
Worksheets("Dossier").Cells(Fin2, 2) =
Worksheets("Trame").Cells(i, 2)
Worksheets("Dossier").Cells(Fin2, 6) = "NF"

Next i


Merci d'avance


Avatar
escoune
Pour information : je viens de copier mon fichier sur le bureau, j'ai
lancé la macro, et ça marche.

Il y a vraiment des choses que je comprendrais jamais ^^


Je le mettrais ce soir (actuellement le proxy de mon travail m'empêche
d'y accéder).
Merci bien.


Bonjour à tous,

A première lecture, il n'y a pas d'erreur ;-)

La boucle pourrait être optimisée mais cela ne changerait rien à ton
problème.

J'ai l'intuition que le problème réside dans l'état actuel de ton dossier et
te suggère d'essayer ta macro dans un nouveau fichier car il doit y a voir un
parasite quelque part dans ton fichier.

Pour t'aider plus ou tester, il faudrait mettre ton fichier sur Cjoint.

A+

PaulV

a écrit dans le message de news:

Tout d'abord salut à tous :)

Voici maintenant 2 jours que je cherche à résoudre une erreure dans
mon code. Pour information, la partie qui bugg marchait très bien
auparavant et maintenant ne veut plus marcher alors que je n'ai pas
changé de post. J'ai essayé de rajouter le workbooks en instruction,
d'enlever le worksheets, rien n'y fait. J'ai même rajouté l'argument
Across (qui est pourtant facultatif) en lui donnant sa valeur de base.

Alors si quelqu'un pouvait regarder si il apercevait l'erreur ca serait
grandement sympa :)
Les lignes qui buggent sont les instructions de fusions de cellules :
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge

Voici le début de mon code :

Private Sub jalon_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Fin As Integer
Dim Fin2 As Integer
Fin = Worksheets("Trame").Range("A65536").End(xlUp).Row
Fin2 = Worksheets("Dossier").Range("F65536").End(xlUp).Row
Debut = 11

'On demande à l'utilisateur de confirmer son choix
Avertissement = MsgBox("Êtes vous sûr de vouloir générer les
tâches standardes? Ceci effacera toutes les tâches en cours", 308,
"Génération des tâches standardes")
If Avertissement = 6 Then

'Si la date de prise en charge du dossier est vide on la remplit
If Worksheets("Dossier").Cells(1, 4) = "" Then
Worksheets("Dossier").Cells(1, 4) = Date

'On efface tout si il y a au moins une valeur
If Range("A13") <> "" Then Worksheets("Dossier").Range("A" & Debut
& ":I" & Fin2).Delete Shift:=xlShiftUp
'On parcourt le tableau des tâches standardes du début à la f in
For i = Debut To Fin

'On récupère la valeur de la dernière ligne remplie
Fin2 =
Worksheets("Dossier").Range("A65536").End(xlUp).Offset(1, 0).Row
'On insère une nouvelle ligne
Worksheets("Dossier").Range("A" & Fin2 + 1 & ":I" & Fin2 +
1).Insert Shift:=xlShiftDown
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge
'On copie la valeur
Worksheets("Dossier").Cells(Fin2, 1) =
Worksheets("Trame").Cells(i, 1)
Worksheets("Dossier").Cells(Fin2, 2) =
Worksheets("Trame").Cells(i, 2)
Worksheets("Dossier").Cells(Fin2, 6) = "NF"

Next i


Merci d'avance




Avatar
jps
rassure-toi, escoune, tu n'es pas tout seul dans ce cas...oserais-je ajouter
que la plupart des cas le sont?
jps

a écrit dans le message de news:



Il y a vraiment des choses que je comprendrai jamais ^^
Avatar
Denis / SAD-Marketing
Bonjour , une petite idée,
les parties à fusioner sont elle vide ?
Quand tu fusionne des cellules non vide (en plmus de celle en haut à
gauche , excel demande une confirmation, peut étre le bug se trouve là ?

Ou bien, peut étre les cellules sont dejas fusionné avec d'autres
cellules de facon incompatible avec le nouveau fusionnement ? (dans ce
cas tester un Cells.UnMerge au debut)

Pour information : je viens de copier mon fichier sur le bureau, j'ai
lancé la macro, et ça marche.

Il y a vraiment des choses que je comprendrais jamais ^^





Avatar
escoune
Oui les parties à fusionner sont vides et le format est respecté
(j'insere une ligne dans un tableau, je ne fusionne donc les cellules
que pour respecter le format que j'ai mis au départ).
Merci pour votre aide :)


Bonjour , une petite idée,
les parties à fusioner sont elle vide ?
Quand tu fusionne des cellules non vide (en plmus de celle en haut à
gauche , excel demande une confirmation, peut étre le bug se trouve l à ?

Ou bien, peut étre les cellules sont dejas fusionné avec d'autres
cellules de facon incompatible avec le nouveau fusionnement ? (dans ce
cas tester un Cells.UnMerge au debut)

Pour information : je viens de copier mon fichier sur le bureau, j'ai
lancé la macro, et ça marche.

Il y a vraiment des choses que je comprendrais jamais ^^







Avatar
Paul V
Bonsoir gentes dames et gentes gens,

AMHA tu as un problème d'accès sur ton fichier car visiblement il n'y a pas
d'erreur dans le code.

A+

Paul V
a écrit dans le message de news:

Pour information : je viens de copier mon fichier sur le bureau, j'ai
lancé la macro, et ça marche.

Il y a vraiment des choses que je comprendrais jamais ^^


Je le mettrais ce soir (actuellement le proxy de mon travail m'empêche
d'y accéder).
Merci bien.


Bonjour à tous,

A première lecture, il n'y a pas d'erreur ;-)

La boucle pourrait être optimisée mais cela ne changerait rien à ton
problème.

J'ai l'intuition que le problème réside dans l'état actuel de ton
dossier et
te suggère d'essayer ta macro dans un nouveau fichier car il doit y
avoir un
parasite quelque part dans ton fichier.

Pour t'aider plus ou tester, il faudrait mettre ton fichier sur Cjoint.

A+

PaulV

a écrit dans le message de news:

Tout d'abord salut à tous :)

Voici maintenant 2 jours que je cherche à résoudre une erreure dans
mon code. Pour information, la partie qui bugg marchait très bien
auparavant et maintenant ne veut plus marcher alors que je n'ai pas
changé de post. J'ai essayé de rajouter le workbooks en instruction,
d'enlever le worksheets, rien n'y fait. J'ai même rajouté l'argument
Across (qui est pourtant facultatif) en lui donnant sa valeur de base.

Alors si quelqu'un pouvait regarder si il apercevait l'erreur ca serait
grandement sympa :)
Les lignes qui buggent sont les instructions de fusions de cellules :
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge

Voici le début de mon code :

Private Sub jalon_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Fin As Integer
Dim Fin2 As Integer
Fin = Worksheets("Trame").Range("A65536").End(xlUp).Row
Fin2 = Worksheets("Dossier").Range("F65536").End(xlUp).Row
Debut = 11

'On demande à l'utilisateur de confirmer son choix
Avertissement = MsgBox("Êtes vous sûr de vouloir générer les
tâches standardes? Ceci effacera toutes les tâches en cours", 308,
"Génération des tâches standardes")
If Avertissement = 6 Then

'Si la date de prise en charge du dossier est vide on la remplit
If Worksheets("Dossier").Cells(1, 4) = "" Then
Worksheets("Dossier").Cells(1, 4) = Date

'On efface tout si il y a au moins une valeur
If Range("A13") <> "" Then Worksheets("Dossier").Range("A" & Debut
& ":I" & Fin2).Delete Shift:=xlShiftUp
'On parcourt le tableau des tâches standardes du début à la fin
For i = Debut To Fin

'On récupère la valeur de la dernière ligne remplie
Fin2 > > Worksheets("Dossier").Range("A65536").End(xlUp).Offset(1, 0).Row
'On insère une nouvelle ligne
Worksheets("Dossier").Range("A" & Fin2 + 1 & ":I" & Fin2 +
1).Insert Shift:=xlShiftDown
'On fusionne les cellules qu'il faut
Worksheets("Dossier").Range("B" & Fin2 + 1 & ":C" & Fin2 +
1).Merge
Worksheets("Dossier").Range("D" & Fin2 + 1 & ":E" & Fin2 +
1).Merge
'On copie la valeur
Worksheets("Dossier").Cells(Fin2, 1) > > Worksheets("Trame").Cells(i, 1)
Worksheets("Dossier").Cells(Fin2, 2) > > Worksheets("Trame").Cells(i, 2)
Worksheets("Dossier").Cells(Fin2, 6) = "NF"

Next i


Merci d'avance




Avatar
J
Bonjour jps
Comme tu le dis très justement, la plupart des cas le sont, mais si
comme l'ajoute pertinemment Denis, les parties sont vides !
alors là l'issue est fatale et on va aux obsèques.

J'observe que sur ce fil (string ne dirait pas Clémnet) 2 sages se
rencontrent ;-)

J@@ (observateur)

rassure-toi, escoune, tu n'es pas tout seul dans ce cas...oserais-je
ajouter que la plupart des cas le sont?
jps

a écrit dans le message de news:



Il y a vraiment des choses que je comprendrai jamais ^^