Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2023-12-29T15:12:14+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Google Sheets : tracer un graphique avec une série par jour, message #2535202023-12-29T15:12:14+01:00Vayel/@Vayelhttps://zestedesavoir.com/forums/sujet/17284/google-sheets-tracer-un-graphique-avec-une-serie-par-jour/?page=1#p253520<p>Merci !</p>Google Sheets : tracer un graphique avec une série par jour, message #2535192023-12-29T14:22:04+01:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/17284/google-sheets-tracer-un-graphique-avec-une-serie-par-jour/?page=1#p253519<p>il faut aller dans Insertion -> Tableau croisé dynamique et ça donne ça</p>
<figure><img src="/media/galleries/5660/a0414bb5-ad6b-4f1b-800d-22876e6bdc87.png" alt="test.png"><figcaption>test.png</figcaption></figure>Google Sheets : tracer un graphique avec une série par jour, message #2535182023-12-29T14:12:09+01:00Moté/@Mot%C3%A9https://zestedesavoir.com/forums/sujet/17284/google-sheets-tracer-un-graphique-avec-une-serie-par-jour/?page=1#p253518<p>Hello,</p>
<p>Sur Excel, il faut faire un graphique croisé dynamique pour faire ce genre de choses (qui en gros génère un tableau crois dynamique puis un graphique dessus). Je ne sais pas quel nom porte ce genre de choses sur Google.</p>Google Sheets : tracer un graphique avec une série par jour, message #2535172023-12-29T12:38:27+01:00Vayel/@Vayelhttps://zestedesavoir.com/forums/sujet/17284/google-sheets-tracer-un-graphique-avec-une-serie-par-jour/?page=1#p253517<p>Bonjour,</p>
<p>Malgré mes recherches je ne trouve pas comment, avec les données suivantes, tracer sur Google Sheets une courbe par jour avec en abscisses les heures et en ordonnées les valeurs :</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span></div><pre><code class="hljs language-text">2023-12-20|00:00:00|3,3
2023-12-20|00:15:00|3,5
2023-12-20|00:30:00|3
...
2023-12-21|00:00:00|3,1
2023-12-21|00:17:00|3,7
2023-12-21|00:32:00|4
...
</code></pre></div>
<p>A noter que les heures de chaque jour ne sont pas nécessairement les mêmes. Il n’y a pas non plus forcément le même nombre de valeurs par jour.</p>
<p>Merci !</p>Envoyer des infos de la ligne coché par mail Google sheet , message #2476102022-12-13T16:22:28+01:00mecaniac/@mecaniachttps://zestedesavoir.com/forums/sujet/16145/envoyer-des-infos-de-la-ligne-coche-par-mail-google-sheet/?page=1#p247610<p>Bonjour,</p>
<p>Avez-vous trouvé une solution ?
J’essaies aussi de faire pareil.</p>
<p>Merci</p>Google sheets script : onEdit sur des plages et des feuilles spécifiques, message #2444622022-07-30T23:45:56+02:00Amaury/@Amauryhttps://zestedesavoir.com/forums/sujet/16384/google-sheets-script-onedit-sur-des-plages-et-des-feuilles-specifiques/?page=1#p244462<p>Merci d’avoir partagé le code pour qui en aurait besoin ! Parfait que tu aies trouvé, je passe le sujet en résolu <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"></p>Google sheets script : onEdit sur des plages et des feuilles spécifiques, message #2444602022-07-30T22:21:27+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16384/google-sheets-script-onedit-sur-des-plages-et-des-feuilles-specifiques/?page=1#p244460<p>Bonjour,</p>
<p>viki53, oui désolé, il s’agit de google sheets.</p>
<p>J’ai trouvé la solution et elle était toute bête.</p>
<p>j’ai oublié de mettre l’objet d’évènement e devant le range.</p>
<p>J’ai donc pu arriver à mes fins.</p>
<p>Je vous partage le code, j’espère que cela pourra servir <img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"></p>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span></div><pre><code class="hljs language-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">onEdit</span>(<span class="hljs-params">e</span>) </span>{
<span class="hljs-keyword">var</span> ss = SpreadsheetApp.getActiveSpreadsheet();
<span class="hljs-keyword">var</span> sheet = e.source.getActiveSheet();
<span class="hljs-keyword">if</span> (e.range.columnStart >= <span class="hljs-number">1</span> &&
e.range.columnEnd <= <span class="hljs-number">3</span> &&
e.range.rowStart >= <span class="hljs-number">1</span> &&
e.range.rowEnd <= <span class="hljs-number">4</span> &&
e.range.isBlank() &&
sheet.getName().includes(<span class="hljs-string">'SEMAINE'</span>))
{ e.range.setBorder(<span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-string">"#576574"</span>, SpreadsheetApp.BorderStyle.SOLID)};
}
</code></pre></div>
<p>Bien à vous <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"></p>
<p><em>Modification <a href="/@Amaury" rel="nofollow" class="ping ping-link">@<span class="ping-username">Amaury</span></a> : coloration du code.</em></p>Google sheets script : onEdit sur des plages et des feuilles spécifiques, message #2444592022-07-30T20:32:27+02:00viki53/@viki53https://zestedesavoir.com/forums/sujet/16384/google-sheets-script-onedit-sur-des-plages-et-des-feuilles-specifiques/?page=1#p244459<p>Bonjour,</p>
<p>Peux-tu nous préciser le contexte ? Je suppose qu’il s’agit d’un tableur… mais lequel ? </p>Google sheets script : onEdit sur des plages et des feuilles spécifiques, message #2444472022-07-30T04:39:29+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16384/google-sheets-script-onedit-sur-des-plages-et-des-feuilles-specifiques/?page=1#p244447<p>Bonjour à tous,</p>
<p>Je cherche un script afin de mettre des bords sur les cellules vides si une modification s’opère.</p>
<p>Et ce, sur des plages spécifiques (ex : 'A1:C4' et 'E1:G4’) puis également sur des feuilles dont le nom contient la le mot "SEMAINE".</p>
<p>J’ai commencé ce code :</p>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span></div><pre><code class="hljs language-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">onEdit</span>(<span class="hljs-params">e</span>) </span>{
<span class="hljs-keyword">var</span> ss = SpreadsheetApp.getActiveSpreadsheet();
<span class="hljs-keyword">var</span> sheet = ss.getActiveSheet();
<span class="hljs-keyword">if</span> (e.range.columnStart >= <span class="hljs-number">1</span> &&
e.range.columnEnd <= <span class="hljs-number">3</span> &&
e.range.rowStart >= <span class="hljs-number">1</span> &&
e.range.rowEnd <= <span class="hljs-number">4</span>)
{ range.setBorder(<span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>,)};
}
</code></pre></div>
<p>Je suis dès le départ bloqué car cela me retourne range is underfined.</p>
<p>Pourtant, je pensais que l’on pouvait utiliser l’objet d’évènement e de onEdit(e) ! </p>
<p>J’espère que vous pourrez m’aider.</p>
<p>Bien à vous.</p>
<p><em>Modification <a href="/@Amaury" rel="nofollow" class="ping ping-link">@<span class="ping-username">Amaury</span></a> : tags, coloration du code.</em></p>google apps script : getActiveCell + 2 prochaines cellules, message #2442732022-07-16T18:03:18+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16367/google-apps-script-getactivecell-2-prochaines-cellules/?page=1#p244273<p>Bonjour tout le monde,</p>
<p>Pour aller un petit peu plus loin,</p>
<p>Avez-vous une idée de comment on peut faire si on veut reporter cette plage (récupérée à l’aide du code précédent) sur une autre feuille ?</p>
<p>Je m’explique :</p>
<p>Dans le code précédent, on a pu avoir une plage de 3 cellules (en rajoutant les 2 cellules de droite à la cellule active) sur la feuille actuelle.</p>
<p>Comment faire pour sélectionner la même plage mais sur une autre feuille pour par exemple appliquer le format de cette autre feuille à notre plage actuelle ?</p>
<p>L’exemple précédent nous donnait la plage A5:C5 sur la feuille actuelle (ex: feuille 3);
Si on veut sélectionner la plage A5:C5 de la feuille 2, quel code me conseilleriez vous ?</p>
<p>J’ai essayer par exemple (en supposant que nous sommes sur la feuille 3):</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span></div><pre><code class="hljs language-text">function myfunction() {
var ss= SpreadsheetApp.getActiveSpreadsheet();
var targetSheet=ss.getActiveSheet();
var sourceSheet = ss.getSheetByName('feuille1');
var currentRange = SpreadsheetApp.getActiveRange();
var col = currentRange.getColumn();
var row = currentRange.getRow();
var targetSheetRange = targetSheet.getRange(row, col, 1, 3);
var rangeName = targetSheetRange.getA1Notation();
var sourceRange = sourceSheet.getRange('A2:C2');
sourceRange.copyTo(targetSheetRange);
SpreadsheetApp.flush();
var mfcSheet = ss.getSheetByName('feuille 2');
var sourceMfcRange = mfcSheet.getRange(targetSheetRange);
sourceMfcRange.copyTo(targetSheetRange, {formatOnly : true});
SpreadsheetApp.flush();
}
</code></pre></div>
<p>la première fonction copyTo fonctionne à merveille,
c’est la deuxième fonction copyTo où je veux aller récupérer le format de la même plage en feuille 2 qui pose problème : Il ne reconnait pas la plage</p>
<p>Voilà, j’espère avoir été assez claire !
Je reste à votre disposition si il faut que j’éclaircisse quelques points.</p>
<p>Merci d’avance pour le temps que vous voudrez bien me consacrer (même si vous n’avez pas la solution).</p>
<p>Bien à vous.</p>[Apps-Script sheets] Première cellule et dernière cellule non-vide dans la ligne actuelle, message #2442722022-07-16T17:46:51+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16370/apps-script-sheets-premiere-cellule-et-derniere-cellule-non-vide-dans-la-ligne-actuelle/?page=1#p244272<p>Waow, cela marche à merveille <img src="/static/smileys/svg/soleil.svg" alt=":soleil:" class="smiley"></p>
<p>Merci pour le code, et surtout les explications qui permettent de progresser.</p>
<p>J’avance bien sur mon projet, c’est cool <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"></p>
<p>Avant de demander, je passe d’abord des heures à chercher.</p>
<p>Merci encore…</p>
<p>@ bientôt <img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"> </p>[Apps-Script sheets] Première cellule et dernière cellule non-vide dans la ligne actuelle, message #2442452022-07-15T11:10:40+02:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/16370/apps-script-sheets-premiere-cellule-et-derniere-cellule-non-vide-dans-la-ligne-actuelle/?page=1#p244245<p>Ok, je vais donc tenter de te donner le code : </p>
<p>Premièrement <code>firstNotEmpty</code></p>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span></div><pre><code class="hljs language-js">
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">firstNotEmpty</span>(<span class="hljs-params">spreadsheet, row</span>)</span>{
<span class="hljs-keyword">const</span> dataRange = spreadsheet.getRange(row, <span class="hljs-number">1</span>, <span class="hljs-number">0</span>, spreadSheet.getLastColumn()).getData()[<span class="hljs-number">0</span>];
<span class="hljs-keyword">for</span>(<span class="hljs-keyword">let</span> i=<span class="hljs-number">0</span>; i<dataRange.length; i++) {
<span class="hljs-keyword">if</span> (dataRange[i] && dataRange[i].trim()) {
<span class="hljs-keyword">return</span> spreadsheet.getRange(row, i, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>).getA1Notation();
}
}
<span class="hljs-comment">// si on n'a rien trouvé ça retournera undefined, il faut donc changer un peu le code principal</span>
<span class="hljs-comment">// on y reviendra</span>
}
</code></pre></div>
<p>Et maintenant, la même mais à l’envers pour trouver la dernière cellule</p>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span></div><pre><code class="hljs language-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">lastNotEmpty</span>(<span class="hljs-params">spreadsheet, row</span>) </span>{
<span class="hljs-keyword">const</span> dataRange = spreadsheet.getRange(row, <span class="hljs-number">1</span>, <span class="hljs-number">0</span>, spreadSheet.getLastColumn()).getData()[<span class="hljs-number">0</span>];
<span class="hljs-keyword">for</span>(<span class="hljs-keyword">let</span> i=dataRange.length -<span class="hljs-number">1</span>; i>=<span class="hljs-number">0</span>; i--) {
<span class="hljs-keyword">if</span> (dataRange[i] && dataRange[i].trim()) {
<span class="hljs-keyword">return</span> spreadsheet.getRange(row, i, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>).getA1Notation();
}
}
}
</code></pre></div>
<p>Et la légère modification du code principale pour éviter les soucis</p>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span></div><pre><code class="hljs language-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">codePrincipal</span>(<span class="hljs-params"></span>)</span>{
<span class="hljs-comment">// code principal</span>
<span class="hljs-keyword">const</span> app = SpreadsheetApp.getActive();
<span class="hljs-keyword">const</span> spreadsheet = app.getActiveSpreadsheet();
<span class="hljs-keyword">const</span> row = app.getActiveRange().getRow();
<span class="hljs-keyword">const</span> first = firstNotEmpty(spreadsheet, row);
<span class="hljs-keyword">if</span> (!first) {
<span class="hljs-comment">// si la ligne était vide, un message a été affiché, on s'arrête là</span>
<span class="hljs-keyword">return</span>;
}
applyStyle(spreadsheet, first, lastNotEmpty(spreadsheet, row))
}
</code></pre></div>google apps script : getActiveCell + 2 prochaines cellules, message #2442432022-07-15T00:30:50+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16367/google-apps-script-getactivecell-2-prochaines-cellules/?page=1#p244243<p>C’était la moindre des choses.</p>
<p>Bien reçu pour le code <img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"></p>
<p><code>"Hello World"</code></p>[Apps-Script sheets] Première cellule et dernière cellule non-vide dans la ligne actuelle, message #2442422022-07-15T00:27:30+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16370/apps-script-sheets-premiere-cellule-et-derniere-cellule-non-vide-dans-la-ligne-actuelle/?page=1#p244242<p>Bonjour Artragis,</p>
<p>Je te remercie pour ta réponse et du temps que tu as consacré à mon problème.</p>
<p>Je t’avoue ne pas avoir un niveau suffisant pour coder cela malgré tes explications.</p>
<p>Il me manque en effet quelques billes.</p>
<p>J’ai donc parcouru ton tutoriel pour prendre un peu de niveau.</p>
<p>D’ailleurs, je trouve celui-ci très bien réalisé et te félicite pour ton travail et ton altruisme.</p>
<p>Bien à toi.</p>[Apps-Script sheets] Première cellule et dernière cellule non-vide dans la ligne actuelle, message #2442392022-07-14T18:32:56+02:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/16370/apps-script-sheets-premiere-cellule-et-derniere-cellule-non-vide-dans-la-ligne-actuelle/?page=1#p244239<p>Je ne pense pas qu’il existe de script tout fait mais tu peux toujours passer par un algorithme fait maison.</p>
<h3 id="structurer-le-script">Structurer le script<a aria-hidden="true" tabindex="-1" href="#structurer-le-script"><span class="icon icon-link"></span></a></h3>
<p>Je ne garantie pas que la logique sera la plus performante, mais elle est je trouve intuitive :</p>
<p>Premièrement on va séparer le problème en trois parties comme tu l’as fait : </p>
<ul>
<li>trouver la première cellule non vide</li>
<li>trouver la dernière cellule non vide</li>
<li>associer un style au range qui en résulte</li>
</ul>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span></div><pre><code class="hljs language-js">
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">firstNotEmpty</span>(<span class="hljs-params">spreadsheet, row</span>)</span>{
}
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">lastNotEmpty</span>(<span class="hljs-params">spreadsheet, row</span>) </span>{
}
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">applyStyle</span>(<span class="hljs-params">spreadsheet, start, end</span>) </span>{
<span class="hljs-keyword">const</span> range = spreadsheet.getRange(start, end);
range.setBorder(<span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">true</span>, <span class="hljs-literal">false</span>, <span class="hljs-literal">false</span>); <span class="hljs-comment">// par exemple mettre des bordures autour du range</span>
}
<span class="hljs-comment">// code principal</span>
<span class="hljs-keyword">const</span> app = SpreadsheetApp.getActive();
<span class="hljs-keyword">const</span> spreadsheet = app.getActiveSpreadsheet();
<span class="hljs-keyword">const</span> row = app.getActiveRange().getRow();
applyStyle(spreadsheet, firstNotEmpty(spreadsheet, row), lastNotEmpty(spreadsheet, row))
</code></pre></div>
<p>Maintenant qu’on a la structure de note algorithme, résolvons chaque problème un par un.</p>
<h3 id="un-petit-problème-à-la-fois">Un petit problème à la fois<a aria-hidden="true" tabindex="-1" href="#un-petit-problème-à-la-fois"><span class="icon icon-link"></span></a></h3>
<h4 id="trouver-la-première-cellule-non-vide">Trouver la première cellule non vide<a aria-hidden="true" tabindex="-1" href="#trouver-la-première-cellule-non-vide"><span class="icon icon-link"></span></a></h4>
<p>Pour trouver la première cellule non vide, c’est assez facile finalement : on parcours la ligne complète et on regarde la première colonne non vide.</p>
<p>Pour parcourir une ligne il faut d’abord sélectionner la ligne complète puis le parcours se fait comme dans <a href="https://zestedesavoir.com/tutoriels/1023/les-macros-google-spreadsheet/#2-manipuler-la-table-de-donnees-1">le tutoriel</a>.</p>
<p>Le point le plus difficile c’est donc d’obtenir la ligne complète.</p>
<h5 id="méthode-1-créer-le-range">méthode 1 : créer le range<a aria-hidden="true" tabindex="-1" href="#méthode-1-créer-le-range"><span class="icon icon-link"></span></a></h5>
<p>COmme tu l’as fais dans un autre message, tu peux obtenir le range avec simplement <code>spreadsheet.getRange(row, 1, row, spreadSheet.getLastColumn())</code>.</p>
<h5 id="méthode-2-utiliser-la-méthode-qui-permet-de-lister-le-range-qui-a-une-données">méthode 2 : utiliser la méthode qui permet de lister le range qui a une données<a aria-hidden="true" tabindex="-1" href="#méthode-2-utiliser-la-méthode-qui-permet-de-lister-le-range-qui-a-une-données"><span class="icon icon-link"></span></a></h5>
<p>l’objet Spreadsheet possède la fonction <code>getDataRange()</code> qui te retourne un tableau avec toutes les lignes. Ensuite, il te suffit d’utiliser <code>dataRange[row]</code> pour avoir toutes les données de la lignes.</p>
<p>Avec ça tu pourras savoir à quelle colonne il y a une données.</p>
<p>Autre avantage pour la suite, il te suffit de parcourir ce tableau à l’envers pour connaître la dernière cellule non vide.</p>
<h4 id="trouver-la-dernière-cellule-non-vide">Trouver la dernière cellule non vide<a aria-hidden="true" tabindex="-1" href="#trouver-la-dernière-cellule-non-vide"><span class="icon icon-link"></span></a></h4>
<p>Globalement il y a deux manières de faire : </p>
<ul>
<li>on parcourt le tableau de gauche à droite, on retient la dernière fois qu’on a vu une cellule non vide. Une fois la parcours terminé on a gagné. </li>
<li>On parcourt le tableau de droite à gauche et on s’arrête à la première cellule non vide</li>
</ul>
<p>Voilà</p>google apps script : getActiveCell + 2 prochaines cellules, message #2442382022-07-14T17:08:49+02:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/16367/google-apps-script-getactivecell-2-prochaines-cellules/?page=1#p244238<p>Bonjour,</p>
<p>merci d’avoir partagé ta solution. J’avais mis ton poste dans mes onglets ouverts pour y répondre quand j’avais le temps, je suis donc content que tu t’en sois sorti. C’est encore mieux que tu aies eu le reflex de partager le code, ça aidera les gens qui auront aussi ce besoin.</p>
<p>Je me suis aussi servi de mes pouvoir de modo pour formatter le code (il suffit de mettre trois fois <kbd>`</kbd> touche que tu trouveras en faisant <kbd>AltGr</kbd>+<kbd>7</kbd>.</p>[Apps-Script sheets] Première cellule et dernière cellule non-vide dans la ligne actuelle, message #2442372022-07-14T16:26:21+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16370/apps-script-sheets-premiere-cellule-et-derniere-cellule-non-vide-dans-la-ligne-actuelle/?page=1#p244237<p>Bonjour à tous,</p>
<p>Je suis à la recherche d’un script qui me permette de trouver la première cellule non vide de la ligne actuelle (quelque soit la ligne dans laquelle je me trouve).</p>
<p>Une fois cette cellule trouvée, je voudrais lui donner des attributs comme par exemple avec setBorder.</p>
<p>Je voudrais ensuite faire la même chose avec la dernière cellule non vide de la ligne actuelle.</p>
<p>Enfin, je voudrais donner un autre attribut aux cellules dans lesquelles j’ai des données.</p>
<p>Tout cela sur la ligne actuelle sur laquelle je me trouve.</p>
<p>j’espère que quelqu’un pourra m’aider <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"> </p>
<p>Si je n’ai pas été assez claire dans ma demande, je reste à votre disposition.</p>
<p>Je vous remercie d’avance.</p>
<p>Bien à vous.</p>google apps script : getActiveCell + 2 prochaines cellules, message #2442362022-07-14T16:19:39+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16367/google-apps-script-getactivecell-2-prochaines-cellules/?page=1#p244236<p>Salut Elegance,</p>
<p>Je vous remercie pour votre réponse.</p>
<p>Effectivement, c’est A5:C5 <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"></p>
<p>J’ai trouvé la solution :</p>
<div class="hljs-code-div hljs-code-js"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span></div><pre><code class="hljs language-js"><span class="hljs-keyword">var</span> currRange = SpreadsheetApp.getActiveRange()
<span class="hljs-keyword">var</span> col = currRange.getColumn()
<span class="hljs-keyword">var</span> row = currRange.getRow()
<span class="hljs-keyword">var</span> range = SpreadsheetApp.getActiveSheet().getRange(row, col, <span class="hljs-number">1</span>, <span class="hljs-number">3</span>)
<span class="hljs-keyword">var</span> rangeName = range.getA1Notation()
</code></pre></div>
<p>Voilà, j’espère que cela pourra servir.</p>
<p>Bien à vous.</p>google apps script : getActiveCell + 2 prochaines cellules, message #2442332022-07-14T09:22:38+02:00elegance/@elegancehttps://zestedesavoir.com/forums/sujet/16367/google-apps-script-getactivecell-2-prochaines-cellules/?page=1#p244233<p>Dans office, l’instruction pour ça, c’est OFFSET. Et on trouve rapidement : <a href="https://thierryvanoffe.com/google-sheets-decaler-offset-en-anglais/">Offset (=decaler)</a></p>
<p>Pour moi, quand on décale à droite à partir de A5, on trouve A5:C5, et non A5:A7</p>google apps script : getActiveCell + 2 prochaines cellules, message #2442292022-07-13T22:41:08+02:00jpanevel/@jpanevelhttps://zestedesavoir.com/forums/sujet/16367/google-apps-script-getactivecell-2-prochaines-cellules/?page=1#p244229<p>Bonjour à tous,</p>
<p>Je voudrais prendre en range la cellule actuelle + les 2 prochaines cellules à droite :</p>
<p>var range = getActiveCell() + les 2 prochaines à droite</p>
<p>Par exemple si je suis sur la cellule A5, je voudrais que mon range soit A5:C5</p>
<p>Je vous remercie par avance pour le temps que vous pourrez me consacrer.</p>
<p><img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"></p>suivi de l'évolution du stock, message #2427572022-05-10T20:25:25+02:00gauthierdel/@gauthierdelhttps://zestedesavoir.com/forums/sujet/16212/suivi-de-levolution-du-stock/?page=1#p242757<p>Merci 79533273cd, je vais modifier mon tableur en conséquence en espérant que ce soit plus simple pour faire la macro</p>