Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème vba suite migration 2003 vers 2010

MikeBelgique

XLDnaute Occasionnel
Bonjour Forum,

Il y a 5ans Ninbihan m'avait apporté sa précieuse collaboration pour la création d'un programme dont j'utilisais à mon boulot dont l'entreprise fonctionnait sous excell 2003, or suite à la migration de 2003 vers 2010, malheureusement mon tableau ne fonctionne plus.

Voici le code vba :

Public Flag As Boolean
'Flag est une variable qui passe à vrai dès qu'une modif est faite dans BD voir macro évenementielle de BD
'Ensuite lorsque l'on active la feuille projection si cette variable est vrai alors on execute la macro ci dessous
'voir macro évenementielle de projection

Sub generelist()
With Sheets("Projection")
Dim Nbjour As Integer
Dim Cell As Range

'Suppresion des lignes sauf L4 pour garder les formules
If .Range("A4").End(xlDown).Row > 4 And .Range("A4").End(xlDown).Row < 65536 Then
.Range("A5:A" & .Range("A4").End(xlDown).Row).EntireRow.Delete (xlshift)
End If
'Effacement du contenu de la ligne 4
.Range("A4:AH4").ClearContents
'Définition de la première ligne
i = 4
'Boucle balayant toutes les valeurs de BASE DONNEE AGENT
For Each Cell In Sheets("BASE DONNEE AGENT").Range("A2").CurrentRegion
If Not IsEmpty(Cell) And Cell.Row <> 2 Then
.Cells(i, 1) = Sheets("BASE DONNEE AGENT").Cells(2, Cell.Column)
If Right(Cell, 3) = "38H" Or Right(Cell, 3) = "38h" Then 'Ce if détermine la présence de 38 H en fin de nom
.Cells(i, 3) = "38H"
.Cells(i, 2) = Mid(Cell, 1, Len(Cell) - 4)
Else
.Cells(i, 2) = Cell
End If
'Copie du format de La ligne 4
.Range("A4:AH4").Copy
.Range("A" & i).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'Copie de le formule calcul voir dans insertion nom
Range("D" & i & ":AH" & i).Formula = "=calcul"
Application.CutCopyMode = False
'Passage à la ligne suivante
i = i + 1
End If
Next Cell
'tri
If i > 4 Then
.Range("A4:C" & i).Sort Key1:=Range("A4"), Order1:=xlAscending, Key2:=Range("B4") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End If

'on copie les valeurs
Range(.Range("A4").End(xlToRight), .Range("A4").End(xlDown)).Copy
.Range("A4").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False

'On masque les colonnes en trop
For Each Cell In .Range("D4:AH4")
If Cell = 0 Then
Cell.EntireColumn.Hidden = True
Else
Cell.EntireColumn.Hidden = False
End If
Next Cell

'On remplace 38h par N si... et on supprime les N
For Each Cell In .Range(.Range("D4").End(xlToRight), .Range("D4").End(xlDown))
If Cell.Value = "N" Or Cell.Value = 0 Or (Cell.Value = "36H" And .Cells(Cell.Row, 3) = "38H") Then
Cell.ClearContents
End If
Next Cell

'on construit la ligne total
' a noter que le quota pour l'instant à 11 peut être modifier par insertion nom, définir
.Range("A3:AH3").Copy
.Range("A" & i).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
.Range("A" & i & ":C" & i).Merge
.Range("A" & i).Value = "Total présents - " & Mid(ActiveWorkbook.Names("Quota"), 2)
For Each Cell In .Range("D" & i & ":AH" & i)
Cell.Formula = "=" & i - 4 - CInt(Mid(ActiveWorkbook.Names("Quota"), 2)) _
& "-" & "COUNTA(" & Cells(4, Cell.Column).Address & ":" & .Cells(i - 1, Cell.Column).Address & ")"
Next Cell

'on repasse flag à faux pour éviter de regénérer à chaque activation de la feuille
Flag = False
'et voilà... concernant les formules il s'agit d'un décaler classique associé à un équiv qui détermine quel tableau
'prendre en source
'a noter le nom le_mois paramétré dans insertion nom, il détermine la valeur du mois inscrit en A1
'pour ajouter d'autres mois il faut bien modifier la liste de validation de A1
End With
End Sub


La macro bloque tout d'abord sur 'on masque les colonnes en trop
if cell = 0 THEN

ensuite sur on remplace le 38h par N ......
If Cell.Value = "N" Or Cell.Value = 0 Or (Cell.Value = "36H" And .Cells(Cell.Row, 3) = "38H") Then
Cell.ClearContents

Pour plus de facilité voici les liens du fil de l'époque car il y avait d'autres données peut-être importantes.

https://www.excel-downloads.com/threads/recopier-bd.102128/

Dans l'attente de vous relire je vous remercie d'avance de l'aide que vous pourrez m'apporter
 

Si...

XLDnaute Barbatruc
Re : problème vba suite migration 2003 vers 2010

salut

est-ce le même fichier ?
J'ai ce mauvais résultat quand je supprime le nom "calcul" dans le Gestionnaire de noms alors qu'il y a la ligne
Code:
Range("D" & i & ":AH" & i).Formula = "=calcul"
!



edition : bonsoir aux couche-tard ou lève-tôt
 

Pièces jointes

  • Noms.jpg
    47.5 KB · Affichages: 104
  • Noms.jpg
    47.5 KB · Affichages: 99
Dernière édition:

MikeBelgique

XLDnaute Occasionnel
Re : problème vba suite migration 2003 vers 2010

re tout le monde,

Si, oui c'est le bon fichier d'après ce que tu me dis d'une ligne de commande.

Staple1600, dans les paramètres des macros est coché : activer toutes les macros (non recommandé .....) et je ne peux rien changé, ils ont bloqué les droits dans cette catégories.

Donc Roger confirme que le programme fonctionne sous office 2010, moi-même je teste chez moi un fichier de l'année dernière mais dont le contenu ne change en rien à celui-ci et fonctionne sous 2010.
Lorsque je me l'envoie par mail à mon boulot, dans l'aperçu d'outlook je vois mes données dans mon tableau tel qu'elle doivent apparaître, mais dès que j'enregistre la pièce jointe et l'ouvre à partir du travail, là ça ne va plus, donc il s'agirait plutôt de paramètres (cochés ou non) qui empêcheraient la bonne exécution du programme, et non comme je le pensais au départ un souci dans les codes.

Le fichier que je me suis re-envoyé par mail était protégé au départ via macro à l'ouverture, cela pourrait il avoir une incidence ? bien que le fichier qui me pose problème au travail est le seul (enfin non tous les fichiers identiques mais des années antérieures réagissent de la sorte) alors que d'autres programmes excell que j'ai élaboré sont protégé de la même manière mais fonctionnent quant à eux malgré la migration 2003 -2010
 
Dernière édition:

ninbihan

XLDnaute Impliqué
Re : problème vba suite migration 2003 vers 2010

Bonjour à tous,

Je confirme que cela fonctionne sous 2010, franchement je ne vois pas qu'est ce qui peut coincer...
Quelle est l'adresse de Cell quand la macro plante ?


Ninbihan
 

MikeBelgique

XLDnaute Occasionnel
Re : problème vba suite migration 2003 vers 2010

Bonsoir Ninbihan, Staple1600,
bonsoir le forum

Désolé de ne revenir que maintenant, en fait j'ai testé différentes combinaisons :

Comme stipulé dans mon dernier message,le fichier qui bloque au boulot lorsque je me l'envoie chez moi, il fonctionne.
Le fichier fonctionnel chez moi lorsque je me l'envoie au boulot, je vois mes données apparaître dans l'aperçu d'outlook, mais lorsque je l'enregistre sur ma session et l'ouvre là cela bloque.

Il s'avère qu'effectivement Staple tu aurais certainement vu juste sur le paramétrages de la sécurité des macros, qui dans l'entreprise est coché sur : activer toutes les macros (non recommandé .....) mais ne peux rien changé, ils ont bloqué les droits dans cette catégories.
J'ai donc envoyé un mail aux responsables du service informatique afin de palier à mon problème mais j'attend toujours la réponse (et oui les joies de l'administration et des grosses boites d'autant que je suis en service de nuit uniquement) sans savoir si ce même service pourra m'aider ou si il faut passer par la maison mère qui se trouve ailleurs bien sûr.

Je vous tiens au courant dès que possible, grand merci à tous pour votre aide et conseils, à bientôt.

En ce qui concerne la solution de "si" du message #7, en fait comme stipulé dans le message #8, je rencontre le même souci dès que je lance la macro; même problème et erreur énoncé qu'au départ : erreur d'exécution 13 incompatibilité de type

et cette ligne en surlignage lors du débogae :

R.EntireColumn.Hidden = R = ""
et ensuite
If R.Value <> "R" Then R.ClearContents

ceci même directement sur le fichier joint, ce qui tente à confirmer ce qui est dit plus haut, un problème de paramétrage.
 
Dernière édition:

MikeBelgique

XLDnaute Occasionnel
Re : problème vba suite migration 2003 vers 2010

Et bien il semble que je doive trouver une astuce pour détourner ce problème ou abandonner ce programme, l'instal d'excell est ainsi faite pour l'ensemble des pc et il ne me pourra donc pas être possible d'obtenir les droits afin de changer ces paramètres de sécurité de macro, ni pour personne semble t il.
Si vous aviez une idée, je vous en serai ravi.
 

Discussions similaires

Réponses
1
Affichages
432
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…