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

Range(activecell, activecell.offset(0,1)) fonctionne pas !

  • Initiateur de la discussion Initiateur de la discussion fredh
  • 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 !

fredh

XLDnaute Occasionnel
Salut a tous

J'ai fait un autre poste mais je crois qu'il est trop compliqué, trop long

donc allons a l'essentiel !

Je veut travailler a partir d'une céllule qui peut varié, donc je prend la célulle active comme base de départ puis fait des offset.
Seulement mes offset ne fonctione pas sur des Range !

Code:
Dim Org_cell As Variant

    Range("A1").Select           'exemple de cellule active, lors du 2em lancement de la macros cette cellule sera en A15, puis a30, puis a 45 etc..
    Org_cell = ActiveCell.SpecialCells(xlLastCell).Offset(3, -5).AddressLocal    'message d'erreur
    
    With Range(Org_cell)
            .Offset(0, 1).FormulaR1C1 = "Type"           ' pour B1
            .Offset(0, 2).FormulaR1C1 = "Station"        ' pour C1
            .Offset(0, 3).FormulaR1C1 = "Adresse"        ' pour D1
            .Offset(2, 0).FormulaR1C1 = "Message"        ' Pour A3
            .Offset(3, 0).FormulaR1C1 = "Cause"          ' pour A4
            .Offset(5, 0).FormulaR1C1 = "Effet"          ' pour A6
            .Offset(7, 0).FormulaR1C1 = "Remède"         ' pour A8
    End With

    Range(Org_cell, Org_cell.Offset(0, 1))..Merge  ' pour merger "A1:A2"
 

Pièces jointes

Dernière édition:
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Bonsoir fredh,

Peut-être en modifiant ta dernière ligne ainsi :

Code:
Range(Range(Org_cell), Range(Org_cell).Offset(0, 1)).Merge  ' pour merger "A1:A2"

Espérant avoir résolu.

Cordialement.
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Bonjour à tous,

essaye peut être ceci :
Code:
Org_cell = Cells.SpecialCells(xlCellTypeLastCell).Offset(3, -5)

Après, pas 2007 sous le code, mais faudrait voir quelle est la cellule renvoyée par "SpecialCells(xlCellTypeLastCell)", est-ce qu'il est possible de la décaler de 5 colonnes.... car si en colonne C par exemple, plantage....

bonne journée
@+
 
Dernière édition:
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

bon je vais allez a la peche....
je recherchais la derniére celulle active pas macro
Ce qui me donnait D11 !

Seulemenent pour pas encombré le code je l'avais effacé et mis Range "A1"
allez je vais au coin !

merci pierrot
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Coucou

autre problemes.

Savez vous comment ècrire une longue formule en vba ?

Celle ci ne passe sous VBA !
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Bonjour fredh,

Si tu travailles sur Excel en version française, il faut que tu rédiges la formule entre guillemets en français également.

Espérant avoir répondu.

Cordialement.
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Bonjour

excel 97 est limité à 7 condirions imbriquées

Je peux te donner une formule mais non testée
Activecell.formulaR1C1 = "IF RC[-3]<350;""Alarme station "" & "& FORMAT(INT(((RC[-3]-300+3)/3))-1;""#"")";""Avertissement général"" & "& FORMAT(((INT(RC[-3]-350+3)/3))-1;""#"")")

Les ecarts etant les même : 312 - 300 +3 donne 15 / 3 = 5.000 mais comme il y a 13 et 14, je supprime les décimales avec INT
je retire 1 ce qui me donne 4 : Station 4 : d'ou = "Alarme Station " & format(laformule,"#")
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

SAlut
Merci d'avoir répondu
@Papou-Net : alors en faite j'ai tapé la formule sour excel avec enregistrement d'une macro.
Excell 2007 me prend bien toutes la formule (j'était aussi étonné) et quand je regarde dans la macro, il me met tout sur une ligne sauf quelque caracére qui reviennent a la ligne mais en rouge.
C'est moi qui ai "splitté" les lignes pour avoir une meilleur visibilité a l'écran.
Et il me semble que toute les formule sont en anglais sous VBA

@wilfried : waouv ça c'est du raisonnement, je vais me plongé dedans car trés interessant! cependant je ne voit pas la 1er condition !

En fait j'ai les alarmes qui sont divisé 9 partie de chacune 3 mot :
300 à 302 = Alarmes génerales
303 à 305 = Alarmes station 1
etc... jusqu'a Alarmes station 8

Puis vienne les Avertissement qui eux aussi sont divisé 9 partie de chacune 3 mot
350 à 352 = Avertissement génerales
353 à 355 = Avertissement station 1
etc... jusqu'a Avertissement station 8
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

re:

on va réessayer, mais ca s'embouille lol
Activecell.formulaR1C1 = "IF RC[-3]<350;IF(INT(((RC[-3]-300+3)/3))-1=0;"Alarme Générale";""Alarme station "" & "& FORMAT(INT(((RC[-3]-300+3)/3))-1;""#"")");IF(((INT(RC[-3]-350+3)/3))-1=0;"Avertissement général" ;""Avertissement station"" & "& FORMAT(((INT(RC[-3]-350+3)/3))-1;""#"")"))

non testée

mais voici la formule Excel testée : remplacer seulement A1 par RC[-3]
=SI(A1<350;SI(ENT((A1-300+3)/3)-1=0;"Alarme Générale";"Alarme Station "&TEXTE(ENT((A1+3-300)/3)-1;"#"));SI(ENT((A1-350+3)/3)-1=0;"Avertissement Général";"Avertissement Station " & TEXTE(ENT((A1+3-350)/3)-1;"#")))
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Salut Wilfried

Bon ta formule fonctionne nickel, excellente logique !
J'ai copie la formule, puis fait enregistrement macro et coller la formule.
Dans l'éditeur VBA je la vois mais elle fait une ligne, et je trouve pas le moyens de "splitté" l'affichage
Exemple (sur une ligne d'affichage):
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]<350,IF(INT((RC[-1]-300+3)/3)-1=0,""Alarme Générale"",""Alarme Station ""&TEXT(INT((RC[-1]+3-300)/3)-1,""#"")),IF(INT((RC[-1]-350+3)/3)-1=0,""Avertissement Général"",""Avertissement Station "" & TEXT(INT((RC[-1]+3-350)/3)-1,""#"")))"

désiré (sur plusieurs ligne):
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]<350,IF(INT((RC[-1]-300+3)/3)-1=0,""Alarme Générale"", _
""Alarme Station ""&TEXT(INT((RC[-1]+3-300)/3)-1,""#"")), _
IF(INT((RC[-1]-350+3)/3)-1=0,""Avertissement Général"", _
""Avertissement Station "" & TEXT(INT((RC[-1]+3-350)/3)-1,""#"")))"

Mais ça fonctionne pas !
 
Dernière édition:
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

re:

à essayer
Code:
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]<350,IF(INT((RC[-1]-300+3)/3)-1=0,""Alarme Générale"",""Alarme Station ""&" & _
" TEXT(INT((RC[-1]+3-300)/3)-1,""#"")), " & _
"IF(INT((RC[-1]-350+3)/3)-1=0,""Avertissement Général"", ""Avertissement Station "" &" & _
" TEXT(INT((RC[-1]+3-350)/3)-1,""#"")))"
 
Re : Range(activecell, activecell.offset(0,1)) fonctionne pas !

Salut wilfried_85

Voila maintenant ça fonctionne, il fallait trouver cette syntaxe particuliére !

Merci beaucoup pour vos coup de main efficace
 
- 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

Discussions similaires

R
Réponses
4
Affichages
13 K
Roverman
R
C
Réponses
6
Affichages
2 K
christophedb
C
L
Réponses
4
Affichages
2 K
Lorenzogazier
L
N
  • Question Question
Réponses
2
Affichages
1 K
nimbus le truand
N
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…