Mettre à la suite (VBA)

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 10 sept. 2012 à 15:11
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 20 sept. 2012 à 16:54
Bonjour,

Auriez-vous l'oeil pour déterminer comment faire en sorte que les lignes s'incrivant sur la feuille archive_cdd_fincontrat se mettent à la suite et n'écrase pas les donnéees precédentes ?

Il s'agit certainement de modifier la ligne en gras mais je n'y arrive pas...

Merci d'avance

Private Sub CommandButton1_Click()
  'Mise a jour Colonne ICP
  With Worksheets("CDD")
    .Range("O" & Ligne_Select).Value = TextBox2.Value
    
    'Premiere cellule vide en partant d'une cellule
    PCVideA = Worksheets("CDD_Fin_de_Contrat").Columns(1).Find("", Range("A30").End(xlUp), , , xlByRows).Row
    
    'Copie ligne dans Archive_CDD_Fin_de_Contrat
    .Rows(Ligne_Select & ":" & Ligne_Select).Copy Worksheets("Archive_CDD_Fin_de_Contrat").Range("A" & PCVideA)
    
    'Supprime ligne dans CDD
    .Rows(Ligne_Select & ":" & Ligne_Select).Delete xlUp
    
  End With

3 réponses

H0gS Messages postés 266 Date d'inscription dimanche 2 décembre 2007 Statut Contributeur Dernière intervention 10 septembre 2012 36
10 sept. 2012 à 15:19
Bonjour Co_nexion,

Il y a longtemps que je n'ai pas travailler avec VBA, mais je pense avoir la réponse à ta question...

Actuellement tu écrases le contenu de la cellule car tu copies un nouveau contenu. Essaies plutôt d'ajouter ton contenu à l'ancien.

Comme mentionné plus tôt, je ne me rappelle plus de la syntaxe (probablement qu'un confrère m'aidera), mais sans doute comprendras-tu malgré tout ce qu'il faudra modifier.

Cellule = Cellule + "Contenu à ajouter"

Voilà, ce qui faudrait faire.

Tu dois écrire dans la cellule son ancien contenu (en la lisant) et en ajoutant le nouveau contenu.

Bonne chance!
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287
10 sept. 2012 à 15:22
Salut,

pour mettre un contenu en juxtaposition, préférer & plutôt que +...
0
H0gS Messages postés 266 Date d'inscription dimanche 2 décembre 2007 Statut Contributeur Dernière intervention 10 septembre 2012 36
10 sept. 2012 à 15:25
Tout dépend de la syntaxe du langage. En VBA, probablement qu'il est préférable d'utiliser & plutôt que +, mais en C++ ou C#, vous devez utilisez le +.
0
blux Messages postés 25976 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 avril 2024 3 287
10 sept. 2012 à 15:31
Le question porte sur du VBA...:-)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 sept. 2012 à 16:14
bonjour
essaies cette syntaxe à adapter à tes feuilles
With Sheets("feuil2")
     Rows(.Columns("A").Find("", , , , , xlPrevious).Row) = Sheets("feuil1").Rows(ligne_select).Value
End With


0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
10 sept. 2012 à 17:20
Bonjour à tous

Merci de vous intéresser à mon problème.

J'ai essayer ta formule michel en la mettant à la suite de mon code et en l'adaptant cependant cela ne fonctionne pas et la première fonction prime. Cependant si j'efface la première la ligne disparait...

Et Hogs, je ne vois pas très bien comment mettre en forme l'idée que tu me suggère...

Bref je suis toujours bloqué...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 10/09/2012 à 17:53
curieux j'(avais testé sur une maquette et la ligne "ligne_select" avec une valeur bidon de ligne_select de feuil1était bien recopiée dans la première ligne vide de la feuille2

Quant à hogs ce qu'il écrit
Cellule = Cellule + "Contenu à ajouter" avec & ou + est une concaténation...
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
20 sept. 2012 à 16:46
Bonjour Michel, Hogs, le forum,

Je reviens vers vous car n'ayant toujours pas réussi à trouver la solution.

Je pense que le code que tu m'as fourni Michel est bon cependant je me demandes si ce n'est pas la ligne,

PCVideA = Worksheets("CDD_Fin_de_Contrat").Columns(1).Find("", Range("A30").End(xlUp), , , xlByRows).Row

qui peut poser problème. Car les lignes se mettent n'importe où entre la 1ère et la sixième ligne et se recouvrent entres elles.
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
20 sept. 2012 à 16:54
En ecrivant le précédent post, j'ai penser subitement à quelque chose et il s'avère que je tiens une piste.
Je reviendrais surement vers vous mais pour l'instant veuillez oublier le message précédent.
0