Trouver la première ligne vide et y insérer une valeur

Bonjour à tous !

Sans tourner autour du pot : il faut que je puisse, dans une macro, réussir à créer un tableau à partir d'une autre feuille. Ce dernier se compose de plusieures parties, une pour chaque agent. Mais voci les contraintes (qui obligent à passer par la macro d'ailleurs) : la feuille source varie, et je dois faire en sorte que chaque élément du tableau n'empiète pas sur le prochain.

Enfin, peut être comprendrez vous mieux avec mon code :

Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 10/09/2008 par L0290266
'

'
    Sheets("introduction").Select
    Cells.Select
    Range("AY157").Activate
    Selection.AutoFilter
    Selection.AutoFilter Field:=4, Criteria1:="=1", Operator:=xlOr, _
        Criteria2:="=2"
        Selection.AutoFilter Field:=13, Criteria1:="x"
    Range("D71:L1404").Select
    Selection.Copy
    Sheets("planing").Select
    Range("B7").Select

JE PENSE QUE C'EST ICI QUE L'ON DOIT AJOUTER LE CODE CORESPONDANT A LA RECHERCHE DE LA DERNIERE LIGNE DU TABLEAU.

    ActiveSheet.Paste
End Sub

Cet extrait représente ce qui va faire apparaître un élément du tableau.

hello

ce serait mieux si tu joignais les fichiers, merci

Bonsoir,

essaie ce code :

Sub Macro2()
' Macro modifiée pas DAN pour LeZéro
' Macro enregistrée le 10/09/2008 par L0290266
Dim lig As Long '
With Sheets("introduction")
.Select
.Range("AY157").Activate
.AutoFilter
.AutoFilter Field:=4, Criteria1:="=1", Operator:=xlOr, Criteria2:="=2"
.AutoFilter Field:=13, Criteria1:="x"
lig = Sheets("planing").Range("B65536").End(xlUp).Row + 1
.Range("D71:L1404").Copy Destination:=Sheets("planing").Range("B" & lig)
End With
End Sub

Quelques questions juste pour comprendre ce que tu fais :

  • pourquoi changes-tu le critère 1 par X dans Autofilter ?
  • pourquoi, après avoir fais ton filtre, sélectionnes-tu la cellule AY157 puis copier les valeurs de D71 à L1404 ?

Amicalement

Dan

Salut à tous !

Désolé pour le retard Dan, mais j'ai su me débrouiller finalement.

En revanche il me reste un truc à faire : sauter une ligne après chaque élément. Si quelqu'un connaissait un code pour faire ça ca serait parfait !

Re,

sauter une ligne après chaque élément

Ce qui veut dire ??

Dan

Bonjour,

difficile de répondre sans avoir ton dernier code...

Si j'ai bien compris, remplace ta ligne

lig = Sheets("planing").Range("B65536").End(xlUp).Row + 1

en mettant .Row + 2

40macro-1.xlsm (35.00 Ko)
Rechercher des sujets similaires à "trouver premiere ligne vide inserer valeur"