Excel Copier coller après un test

Bonjour,

Je débute en macro et je n'arrive pas à résoudre mon problème.
Je dois traiter un fichier de 42000 ligne où uniquement la colonne A contient des données de la façon suivante :
Si le premier caractère de la ligne est un chiffre je copie la ligne dans la feuille 2 à la première ligne non vide
Si le premier caractère n'est pas un chiffre je concatène la ligne avec la ligne précédente dans la feuille 2
par exemple si j'ai en feuille 1 les données suivantes

1djsfhqoufh
jkjkdfioh
23dkjfio

je dois obtenir le résultat suivant en feuille 2

1djsfhqoufhjkjkdfioh
23dkjfio

Merci d'avance pour tout aide

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Je ne suis pas un pro en vba mais peut-être que ce code peut vous convenir

    Private Sub CommandButton1_Click()

    Dim i, j As Integer
    Dim num As Variant

    i = 1
    j = 0

    While IsEmpty(Sheets("Feuil1").Range("A" & i)) = False
    If IsNumeric(Left(Sheets("Feuil1").Range("A" & i), 1)) = True Then
    j = j + 1
    Sheets("Feuil2").Range("A" & j) = Sheets("Feuil1").Range("A" & i)
    Else
    Sheets("Feuil2").Range("A" & j) = Sheets("Feuil2").Range("A" & j) & Sheets("Feuil1").Range("A" & i)
    End If
    i = i + 1
    Wend

    End Sub
    1. bonjour,

      est que ce code pourrait convenir ( nom des feuilles à adapter) :
      Dim Maligne As Long, Derlig As Long
      Derlig = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
      Maligne = 0
      For i = 1 To Derlig
      If Left(Cells(i, 1).Value, 1) < 10 Then 'si chiffre
          Maligne = Maligne + 1
          Sheets("Feuil2").Cells(Maligne, 1).Value = Sheets("Feuil1").Cells(i, 1).Value
      Else
          Sheets("Feuil2").Cells(Maligne, 1).Value = Sheets("Feuil2").Cells(Maligne, 1).Value & Sheets("Feuil1").Cells(i, 1).Value
      End If
      Next


      bonne suite