Excel Copier coller après un test

Fermé
Kris - 26 août 2011 à 17:27
 Paf - 26 août 2011 à 18:59
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
A voir également:

2 réponses

Utilisateur anonyme
26 août 2011 à 18:58
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
0
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
0