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

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

  • Initiateur de la discussion Initiateur de la discussion Sofhy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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]
😱
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
 
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
@+
 
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 🙂
 
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".

😱
Sofhy
 
Re : Problème de "Offset" après une formule

Re, bonsoir Skoobi🙂

Aarf, quand je disais :
perso j'écrirais directement dans la cellule....
en fait je le ferais écrire par le code bien sur... me suis mal exprimé moi...

Regarde le code de Skoobi, correspond a ce que je voulais dire....

@+
 
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 😀 (mais je progresse ...). Et quand tu parlais d'écrire directement, j'avais compris manuellement par le clavier.😛

@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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…