Fonction Convertir via une macro qui ne fonctionne plus (XL2016)

Bonjour,

J'ai retrouvé un ancien code qui fonctionnait à l'époque mais pour les données actuelles il ne fonctionne pas / plus comme j'aimerais.

Il s'agit de faire comme le menu "convertir" mais en plus rapide et avec un nombre de données par cellules variables et un nombre total de lignes variables également.

Les données sont en colonne A ligne 1 à 12 et le résultat doit arriver 2 ou 3 lignes plus bas que ce tableau pour ne pas effacer les données de base.

Merci de votre aide en vba

Bonjour,

Comme ceci peut-être ?

Public Sub MenuConvert2()
  ' separation par espace
  With ThisWorkbook.Worksheets("convert").Range("A1")
    Range(.Cells, .End(xlDown)).TextToColumns .Offset(, 1), xlDelimited, xlTextQualifierNone, Space:=True
  End With
End Sub

L'utilitaire Texte en colonne du menu données est automatisable en VBA.

Bonjour,

Comme ceci peut-être ?

Public Sub MenuConvert2()
  ' separation par espace
  With ThisWorkbook.Worksheets("convert").Range("A1")
    Range(.Cells, .End(xlDown)).TextToColumns .Offset(, 1), xlDelimited, xlTextQualifierNone, Space:=True
  End With
End Sub

L'utilitaire Texte en colonne du menu données est automatisable en VBA.

Merci !

C'est bien mieux que ce que j'avais.
Je voudrais à présent transposer ces données en colonne mais dans un code secondaire

ps: j'ai beaucoup participé à ce forum mais je n'utilise plus que très rarement excel, d'où mes difficultés (l'âge sans doute), par contre j'ai gardé une macro qui me mettra en couleur les éventuels doublons dans ces listes (de feu BOISGONTIER)

Re,

Oui je vois que vous avez beaucoup plus de participation que moi ahaha. Si j'ai bien compris... ? La macro ci-dessous transpose (et remplace) le tableau obtenu à droite.

Important : puisqu'il faut la lancer après la macro précédente, j'ai fait la supposition suivante : la dernière colonne utilisée de la feuille est celle avec laquelle nous travaillons, idem pour la dernière ligne (en gros pas d'autres données éparpillées sur la feuille).

Public Sub Transposer()
  With ThisWorkbook.Worksheets("convert")
    Dim lastCol As Long: lastCol = .UsedRange.Columns.Count
    Dim lastRow As Long: lastRow = .Range("B1").End(xlDown).Row
    Dim data As Variant
    With Range(.Range("B1"), .Cells(lastRow, lastCol))
      data = .Value
      .ClearContents
    End With
    .Range("B1").Resize(UBound(data, 2), UBound(data, 1)).Value = WorksheetFunction.Transpose(data)
  End With
End Sub

Re,

Oui je vois que vous avez beaucoup plus de participation que moi ahaha. Si j'ai bien compris... ? La macro ci-dessous transpose (et remplace) le tableau obtenu à droite.

Important : puisqu'il faut la lancer après la macro précédente, j'ai fait la supposition suivante : la dernière colonne utilisée de la feuille est celle avec laquelle nous travaillons, idem pour la dernière ligne (en gros pas d'autres données éparpillées sur la feuille).

Public Sub Transposer()
  With ThisWorkbook.Worksheets("convert")
    Dim lastCol As Long: lastCol = .UsedRange.Columns.Count
    Dim lastRow As Long: lastRow = .Range("B1").End(xlDown).Row
    Dim data As Variant
    With Range(.Range("B1"), .Cells(lastRow, lastCol))
      data = .Value
      .ClearContents
    End With
    .Range("B1").Resize(UBound(data, 2), UBound(data, 1)).Value = WorksheetFunction.Transpose(data)
  End With
End Sub

Je dois m'absenter, je regarde ça dès mon retour
Merci !

Rechercher des sujets similaires à "fonction convertir via macro qui fonctionne xl2016"