VBA / Copier un texte dans feuille dès que ligne vide

Fermé
Micka - Modifié par pijaku le 24/02/2015 à 11:20
 Micka - 24 févr. 2015 à 13:25
Bonjour,
Etant novice en macro et code VBA, je me tourne vers vous.
J'ai effectuer plusieurs macros pour un fichier Excel personnel permettant plusieurs manipulation a l'aide de bouton créer sur Excel.

J'ai effectuer une boucle qui lisait mes lignes tant que celle ci n'était pas vide.

Je cherche pour la suite de mon fichier a effectuer un code qui me permettrait de :

Lire dans la Sheet: separateurtxt / Colonne A : ligne 1
de faire i +1 tant que ce n'est pas vide.

Et dès que c'est vide copier la .cells(M28) de la sheet ACCUEIL et la coller dans la ligne vide.

Est-ce possible?
Vous me rendrez un véritable service en m'aidant!!!!

Merci d'avance a tous !


PS: voici ma premiere boucle:

Sub SIA451()

Dim i As Long
Dim NumCAN As String
Dim NumLigne As Long
Dim lignetxt As Long
Dim Case0 As String
Dim Case1 As String
Dim Case2 As String
Dim Case3 As String
Dim Case4 As String

i = 2
Case0 = "F" & CStr(i)
NumCAN = Sheets("ACAD LT EXPORT").Range(Case0).Value

lignetxt = 130

While (NumCAN <> "")
    NumLigne = 1 + Application.Match(NumCAN, Sheets("Base de données des prix CAN").Range("A2:A500"), 0)
    Case1 = "D" & CStr(NumLigne)
    Case2 = "D" & CStr(NumLigne + 1)
    Case3 = "D" & CStr(NumLigne + 2)
    Case4 = "D" & CStr(NumLigne + 3)
    Sheets("separateurtxt").Cells(lignetxt, 1).Value = Sheets("Base de données des prix CAN").Range(Case1).Value
    Sheets("separateurtxt").Cells(lignetxt + 1, 1).Value = Sheets("Base de données des prix CAN").Range(Case2).Value
    Sheets("separateurtxt").Cells(lignetxt + 2, 1).Value = Sheets("Base de données des prix CAN").Range(Case3).Value
    Sheets("separateurtxt").Cells(lignetxt + 3, 1).Value = Sheets("Base de données des prix CAN").Range(Case4).Value

    i = i + 1
    Case0 = "F" & CStr(i)
    NumCAN = Sheets("ACAD LT EXPORT").Range(Case0).Value
    lignetxt = lignetxt + 4

Wend



End Sub






A voir également:

4 réponses

Bonjour

pas sûr d'avoir compris.

Trouver la première ligne vide de la feuille separateurtxt colonne A

DerLig = Sheets("separateurtxt").Range("A" & Rows.Count).End(xlUp).Row +1


copier la .cells(M28) de la sheet ACCUEIL et la coller dans la ligne vide.
WorkSheets("separateurtxt").Range("A" & DerLig )=WorkSheets("ACCUEIL ").Range("M28")

ou
WorkSheets("ACCUEIL ").Range("M28").Copy WorkSheets("separateurtxt").Range("A" & DerLig )
'(sur une seule ligne de code)


A+
0
Salut! Merci pour ta répons extrêmement rapide!
Tu as parfaitement compris ma demande.

En outre j'ai un souci, je test le code il me fait un erreur de compilation: instruction incorrecte a l'extérieur d'une procédure. Au niveau du .Range ("A" & Derlig) c'est le "A" apparemment qui bloque. Aurais-tu une solution=
0
Re,

As tu bien mis dans ton code la ligne:
DerLig=...

DerLig est il écrit pareil dans l'instruction de copie?

quelle solution de copie as tu choisie?
mais de toutes façons WorkSheets("separateurtxt").Range("A" & DerLig) ne peut pas planter à moins que la feuille separateurtxt ou la colonne A n'existe pas

A+
0
Excuse moi!
Un accent dans le nom de la WorkSheets était a l'origine du problème!
Du coup sujet résolu!

Je te remercie pour l'aide apportée!
Super rapide en plus !
0