Copier cellule dans dernière cellule vide d'une ligne

Dju1

XLDnaute Occasionnel
Bonjour,
j'arrive à la fin de mon "projet" et je recherche la macro qui me permette de copier une cellule dans la dernière cellule vide d'une ligne. Gros point important , cette ligne doit être déterminé par une cellule dans laquelle se trouve un choix déroulant.
Dans le cas de la PJ, je veux copier F2 de la feuille "Cartes" dans la dernière cellule vide d'une ligne de la feuille "BDD". Cette ligne doit être déterminé par le choix déroulant en B2 de la feuille "Cartes".

Il s'agit d'une macro complexe je pense et je bloque totalement.

Merci d'avance.
 

Pièces jointes

  • service1.xlsm
    54.2 KB · Affichages: 37
  • service1.xlsm
    54.2 KB · Affichages: 38
  • service1.xlsm
    54.2 KB · Affichages: 38

Efgé

XLDnaute Barbatruc
Re : Copier cellule dans dernière cellule vide d'une ligne

Bonjour Dju1
Une proposition, mais dans ton exemple il n'y a rien en Sheets("Cartes").Range("$F$2")

VB:
Sub test()
Dim i&, D As Object, F As Worksheet
Set F = Sheets("Cartes")
Set D = CreateObject("scripting.dictionary")
With Sheets("BDD")
    For i = 2 To .Cells(.Rows.Count, 1).End(3).Row
        D(.Cells(i, 1).Value) = i
    Next i
    F.Range("$F$2").Copy .Cells(D(F.Range("$B$2").Value), .Columns.Count).End(xlToLeft)(1, 2)
End With
End Sub

Cordialement
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

Ca fonctionne merci énormément , ça me frustre d'avoir passer autant de temps et toi en quelques secondes tu y arrives. C'est génial merci beaucoup :)
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

Je me permets d'abuser un petit peu, j'ai réussi à utiliser RECHERCHEV en B4 de la feuille "Cartes" j'aimerais faire le même principe mais en recherchant sur la dernière cellule vide de la ligne plutôt que dans la colonne. J'ai essayé RECHERCHEH mais ça ne fonctionne pas vraiment.
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

Re bonjour Efgé, j'avance encore et toujours... j'ai l'impression que je n'en finirais jamais. Sur le document joint, je réussi à faire ce que je veux, par contre j'ai le même genre de problème que tu as pu résoudre... Quand je crédite ma carte j'aimerais que la ligne de la feuille "BDD" soit sélectionné en fonction de la case B2 de la feuille "Cartes". En attendant ta solution je continue de chercher, j'espère vraiment trouver seul, mais ça fait quelques petites heures que je suis dessus et je ne trouve pas :s
Pour être un peu plus clair, j'aimerais sur la dernière ligne de ma macro "Créditer" que la ligne 2 de C2 soit déterminé par ma case B2 de la feuille "Cartes"

Merci par avance.
 

Pièces jointes

  • service1.xlsm
    61.7 KB · Affichages: 30
  • service1.xlsm
    61.7 KB · Affichages: 41
  • service1.xlsm
    61.7 KB · Affichages: 39
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Copier cellule dans dernière cellule vide d'une ligne

Bonjour Dju1

Pas certain d'avoir compris, la macro crediter ne faisant pas ce qu tu demandes.
Une proposition commentée:

VB:
Sub test_2()
Dim i&, Rw&, Col&
Dim D As Object, F As Worksheet
Set F = Sheets("Cartes")
Set D = CreateObject("scripting.dictionary")

With Sheets("BDD")

    'on index les lignes de la feuille BDD suivant les Nom-Prénom
    'D(Nom-Prénom) = Ligne
    For i = 2 To .Cells(.Rows.Count, 1).End(3).Row
        D(.Cells(i, 1).Value) = i
    Next i

    'On récupère la ligne correspondant à la cellule Sheets("Cartes").Range("$B$2")
    Rw = D(F.Range("$B$2").Value)
    'On récupère la dernière colonne remplie sur la ligne trouvée (rw)
    'si la colonne est inférieur à 5, on prend  5
    Col = WorksheetFunction.Max(.Cells(Rw, .Columns.Count).End(1)(1, 2).Column, 5)

    'La cellule Sheets("BDD") Ligne Rw, colonne 3 (C)
    'Est égale à la somme des cellules Sheets("Cartes").Range("$F$9").Value + Sheets("Cartes").Range("$I$3")
    .Cells(Rw, 3) = F.Range("$F$9").Value + F.Range("$I$3").Value
    'On vide la cellule Sheets("Cartes").Range("$F$9")
    F.Range("$F$9").ClearContents
    'On vide les colonnes de la ligne Rw colonne 5 jusqu'a la colonne Col
    '(5 ou plus suivant ce qui est remplis sur la ligne Rw)
    .Range(.Cells(Rw, 5), .Cells(Rw, Col)).ClearContents

End With
End Sub

Cordialement
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

Bonsoir Efgé, il y a un petit souci ça ne cumule pas correctement mais dans l'idée c'est ça. Il faut juste ajouter au début de la macro un copier coller de la dernière cellule de la colonne A dans la cellule I3 mais je n'y parviens pas :(

En tout cas merci pour le travail déjà effectué :)
 

Efgé

XLDnaute Barbatruc
Re : Copier cellule dans dernière cellule vide d'une ligne

Re

....copier coller de la dernière cellule de la colonne A ...
De quelle feuille ?

La colonne A de la feuille BDD est du texte....
La colonne A de la feuille Cartes est vide...

A quoi sert la cellule I3 si on connait la dernière cellule de la colonne A (dont on ne connais pas la feuille)?

Essai d'être un peu plus explicite, parce que là, je suis obligé de consulter les rûnes des anciens....

Cordialement
 
Dernière édition:

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

J'ai finalement trouvé une solution par une formule et ton code fonctionne à la perfection, encore une fois un grand merci. La dernière chose que je cherche à faire c'est bloquer la date du jour dans l'une des lignes de la colonne B quand une modif est faite sur cette même ligne en colonne C.
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

en fait la cellule I3 me sert comme d'une cellule annexe et ça évite une boucle... Enfin je crois ^^ je l'ai fais hier soir très fatigué et là je m'y remet pour finir ce fichier définitivement. Ta solution fonctionne en tout cas :D
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

Je me permets d'abuser une dernière fois, sur le copier en fonction du résultat de la cellule B3, maintenant je souhaite copier la quantité en F9 en B4 quand je clique sur CREDITER. Evidemment cette cellule changera en fonction de B3, je veux faire cela afin d'avoir un rappel du dernier crédit fait sur la carte. J'espère être clair. Merci
 

Dju1

XLDnaute Occasionnel
Re : Copier cellule dans dernière cellule vide d'une ligne

Bonsoir, je me permets de relancer le sujet et notamment Efgé ^^ car je n'arrive pas à reporter la solution que tu m'a donné précédemment pour clôturer mon fichier... L'objectif est de copier F9 sur la feuille "Cartes" et de le reporter en B4 , cette cellule changera en fonction du choix fait dans la liste déroulante en B2. Merci :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote