Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2011, 09h58   #1
Futur Membre du Club
 
Thomas M
Inscription : février 2011
Messages : 38
Détails du profil
Informations personnelles :
Nom : Thomas M

Informations forums :
Inscription : février 2011
Messages : 38
Points : 19
Points : 19
Par défaut Etrange erreur de format conditionnel de cellules

Bonjour à tous,

J'ai une erreur vraiment très étrange lors de la génération d'un fichier Excel via Access avec du VBA. Je vous met ci-dessous une partie du code qui cause problème.

J'écris en fait beaucoup de données dans un fichier Excel, et j'applique ensuite une mise en forme conditionnelle qui marchait très bien auparavant. Mais maintenant, toutes mes conditions sont "décallées" de +39 lignes.

Code :
1
2
3
4
5
6
7
8
9
10
MsgBox "E" & k + 2 & ":I" & k + 2
 
.Range("E" & k + 2 & ":I" & k + 2).FormatConditions.Delete
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=SOMMEPROD(($B$" & k + 2 & ":$B$" & k + R & "=$B" & k + 2 & ")*($C$" & k + 2 & ":$C$" & k + R & "=$C" & k + 2 & ")*$H$" & k + 2 & ":$H$" & k + R & ")<>1"
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Interior.ColorIndex = 3
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Font.ColorIndex = 2
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Borders(xlTop).Weight = xlThin
 
MsgBox .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Formula1
Voici ce que donnent les deux msgbox et ce que j'obtiens comme format conditionnel sur le même Range:



Le $B40 et le $C40 deviennent un $B79 et $C79 ...

Surtout que tout fonctionnait très bien il y a quelques semaines ... Avez-vous des idées sur l'origine de l'erreur ?

Merci d'avance

Thomas

EDIT:

En effectuant d'autres tests, je me rend compte que c'est bien la référence relative qui pose problème. Les absolues restent telles quelles. Le pb est que j'ai besoin d'une relative car je copie ma ligne et colle le format sur toutes mes données...
thomas.m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 12h12   #2
Membre actif
 
Homme Lionel Garnier
Consultant informatique
Inscription : octobre 2007
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Lionel Garnier
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2007
Messages : 134
Points : 179
Points : 179
Essaye avec ça:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
MsgBox "E" & k + 2 & ":I" & k + 2
 
.Range("E" & k + 2 & ":I" & k + 2).FormatConditions.Delete
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=SOMMEPROD(($B$" & k + 2 & ":$B$" & k + R & "=$B" & 1 & ")*($C$" & k + 2 & ":$C$" & k + R & "=$C" & 1 & ")*$H$" & k + 2 & ":$H$" & k + R & ")<>1"
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Interior.ColorIndex = 3
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Font.ColorIndex = 2
        .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Borders(xlTop).Weight = xlThin
 
MsgBox .Range("E" & k + 2 & ":I" & k + 2).FormatConditions(1).Formula1
J'ai le même problème chez moi. Et c'est vrai que c'est plutôt étrange!
yonnel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 17h41   #3
Futur Membre du Club
 
Thomas M
Inscription : février 2011
Messages : 38
Détails du profil
Informations personnelles :
Nom : Thomas M

Informations forums :
Inscription : février 2011
Messages : 38
Points : 19
Points : 19
Citation:
Envoyé par yonnel Voir le message
Essaye avec ça:

J'ai le même problème chez moi. Et c'est vrai que c'est plutôt étrange!
J'ai essayé avec différentes méthodes, mais toujours un gros décallage apparait ... Très bisarre.
J'ai contourné le problème en passant toutes les formules en absolues et en faisant une boucle sur toutes mes données plutôt qu'en faisant un .copy et un .pastespecial ...
thomas.m est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h15.


 
 
 
 
Partenaires

Hébergement Web