Problème de "Offset" après une formule

Sofhy

XLDnaute Occasionnel
Bonjour à tous,

J'ai une macro qui fonctionne bien, jusqu'à l'entrée en piste de l'Offset...

Voici un extrait
Code:
Sub Ma_Macro
Déclaration de toutes mes variables, ...
Range("AB65536").End(xlUp).Offset(1, 0).Select
FormuleAB = "=somme.si{(}$B$1:$B$" & Wab & ";" & Yab & ";$AB$2:" & Xab & "{)}"
Application.SendKeys Formule + "{enter}"[COLOR="Blue"][B]disons que la
formule s'inscrit en AB29. Tout se passe bien...
Maintenant, ajoutons l'élément perturbateur. Suite à ça, mon curseur se
trouve donc en AB30. J'ai besoin de revenir sur AB29, donc : [/B][/COLOR]
ActiveCell.Offset(-1, 0).Select
End Sub
[B][COLOR="Blue"]Et au lieu de sélectionner AB29, il inscrit ma formule
dans AB28 et celle en AB29 est supprimée [/COLOR][/B]
:eek:
Qu'est-ce que je dois ajouter dans le code pour éviter ça ?
Et si vous aviez une explication, afin que je comprenne... je ne suis pas contre ...

Si vous avez besoin d'un fichier, dites le. Par défaut je n'en ai pas mis, car il faut que je remplace les données d'origine.

Merci par avance,
Sofhy
 

Pierrot93

XLDnaute Barbatruc
Re : Problème de "Offset" après une formule

Re Sophy,

pourquoi utiliser "Application.SendKeys", perso j'écrirais directement dans la cellule.... d'autre part tu initialises une variable "FormuleAB" et tu utilises "Formule".... D'ou l'interêt d'utiliser en début de module "Option Explicit". Enfin, c'est juste un avis au passage....

bonne soirée
@+
 

skoobi

XLDnaute Barbatruc
Re : Problème de "Offset" après une formule

Bonjour Sofhy,

tu n'as pas besoin d'utiliser sendkeys pour écrire une formule dans une cellule. Utilises ceci:

Code:
Range("AB65536").End(xlUp).Offset(1, 0).[B][COLOR=RoyalBlue]FormulaLocal[/COLOR][/B]= "=somme.si{(}$B$1:$B$" & Wab & ";" & Yab & ";$AB$2:" & Xab & "{)}"

Edit: bonjour Pierrot :)
 

Sofhy

XLDnaute Occasionnel
Re : Problème de "Offset" après une formule

Re Pierrot93,

Erreur de ma part, c'est bien FormuleAB dans les deux cas, je ne l'ai pas corrigé dans mon post.

Je n'écris pas directement dans la cellule, car mes "somme.si" ne sont pas toujours au même endroit dans la colonne AB, suivant les données que l'on a extrait avant.
Et pour l'utilisateur final, il faut que ça se génère "tout seul".

:eek:
Sofhy
 

Sofhy

XLDnaute Occasionnel
Re : Problème de "Offset" après une formule

Re,

@Pierrot93
Alors, j'ai une réponse un peu plus pertinente concernant ta question depuis le post de Skoobi :
"pourquoi utiliser "Application.SendKeys", perso j'écrirais directement dans la cellule.... "

Et bien, parce ce que je savais pas comment faire autrement :D (mais je progresse ...). Et quand tu parlais d'écrire directement, j'avais compris manuellement par le clavier.:p

@skoobi
Bonjour et Merci.
Par contre, j'ai une erreur 1004.
Je vais creuser un peu, I'll be back si je ne trouve pas pourquoi.

A++
Sofhy

Edit : nos posts se sont croisés Pierrot ...
 
Dernière édition:

Sofhy

XLDnaute Occasionnel
Re : Problème de "Offset" après une formule

Pierrot93, Skoobi,

Ça y est, tout fonctionne. En fait il fallait enlever les accolades.

Code:
Range("AB65536").End(xlUp).Offset(1, 0).FormulaLocal = "=somme.si($B$1:$B$" & Wab & ";" & Yab & ";$AB$2:" & Xab & ")"

Merci encore pour votre aide,
Bonne soirée,
Sofhy
 

Statistiques des forums

Discussions
312 294
Messages
2 086 953
Membres
103 404
dernier inscrit
sultan87