Convertion d'une macro VBA en google sheet

Bonjour à tous,

j'ai une macro en vba excel qui fonctionne très bien et je souhaiterais la convertir de telle manière qu'elle fonctionne sur google sheet

d'avance merçi

Jacques

Sub AjoutTiretSecondCaractère2()
    Dim lastRow As Long
    Dim rng As Range
    Dim cell As Range

    ' Trouver la dernière ligne avec des données
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row

    ' Parcourir chaque cellule de la colonne A depuis la ligne 1 jusqu'à la dernière ligne avec des données
    Set rng = Range("A1:A" & lastRow)
    For Each cell In rng
        If IsNumeric(Left(cell.Value, 2)) And Len(cell.Value) > 1 And Val(cell.Value) <= 99 Then
            ' Si les deux premiers caractères sont des chiffres de 1 à 99, mettre un tiret après le deuxième caractère numérique
            cell.Value = Left(cell.Value, 2) & "-" & Right(cell.Value, Len(cell.Value) - 2)
        ElseIf IsNumeric(Left(cell.Value, 1)) And Len(cell.Value) > 0 And Val(cell.Value) <= 9 Then
            ' Si le premier caractère est un chiffre de 1 à 9, mettre un tiret après le premier caractère numérique
            cell.Value = Left(cell.Value, 1) & "-" & Right(cell.Value, Len(cell.Value) - 1)
        End If
    Next cell

End Sub

Bonjour,

Par simple curiosité, j'ai demandé de faire la traduction par ChatGpt et voici ce que ça donne, cela fonctionne-t-il chez vous?

function AjoutTiretSecondCaractère2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange("A1:A" + lastRow);
  var data = range.getValues();

  for (var i = 0; i < data.length; i++) {
    var cellValue = data[i][0].toString();
    if (!isNaN(cellValue.substring(0, 2)) && cellValue.length > 1 && Number(cellValue) <= 99) {
      // Si les deux premiers caractères sont des chiffres de 1 à 99, mettre un tiret après le deuxième caractère numérique
      data[i][0] = cellValue.substring(0, 2) + "-" + cellValue.substring(2);
    } else if (!isNaN(cellValue.charAt(0)) && cellValue.length > 0 && Number(cellValue) <= 9) {
      // Si le premier caractère est un chiffre de 1 à 9, mettre un tiret après le premier caractère numérique
      data[i][0] = cellValue.charAt(0) + "-" + cellValue.substring(1);
    }
  }

  range.setValues(data);
}

Cdlt

Bonjour,

j'ai essayé sur une feuille google sheet pour mes essais mais ça n'a pas fonctionné j'avais déjà demandé à chat gpt , à you.com mais sans succès il doit y avoir une erreur dans la transformation pourtant la macro originale pour excel fonctionne super bien

bonne journée

Jacques

Bonjour,

Qu'est-ce qui ne fonctionne pas ?

avant scriptaprès script
00-
1010-
100100
8080-
9999-
55-

edit : J'imagine qu'il y a d'autres données après le / les premiers chiffres, est-ce que ce code modifié fonctionne ?

function test() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange("A1:A" + lastRow);
  var data = range.getValues();

  for (var i = 0; i < data.length; i++) {
    var cellValue = data[i][0].toString();
    if (Number(cellValue.substring(0,2))>1 && Number(cellValue.substring(0,2))<=99 ) {
      // Si les deux premiers caractères sont des chiffres de 1 à 99, mettre un tiret après le deuxième caractère numérique
      data[i][0] = cellValue.substring(0, 2) + "-" + cellValue.substring(2);
    } else if (Number(cellValue.substring(0,1))>1 && Number(cellValue.substring(0,1))<=9) {
      // Si le premier caractère est un chiffre de 1 à 9, mettre un tiret après le premier caractère numérique
      data[i][0] = cellValue.substring(0, 1) + "-" + cellValue.substring(1);
    }
  }

  range.setValues(data);
}

cette dernière fonctionne sauf que elle me met un tiret après le chiffre 1 et si ce sont des autres chiffres, ex 2-- prix etc etc ; 10-- autre etc etc ; et juste le 1- etc etc; sinon ça fonctionne

Re

Excusez moi

la dernière macro google sheet fonctionne super bien encore merçi je l'ai essayé dans plusieurs cas de figure et ça fonctionne à chaque fois

encore merçi à vous

Jacques

Rechercher des sujets similaires à "convertion macro vba google sheet"