Trouver la première ligne vierge + y insérer valeur

LeZéro

XLDnaute Nouveau
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"
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 10
Selection.AutoFilter Field:=13, Criteria1:="x"
Range("D71:L1404").Select
Selection.Copy
Sheets("planing").Select
Range("B7").Select

(Je pense que c'est ici qu'on doit ajouter le code correspondant à la recherche de la dernière ligne du tableau.)

ActiveSheet.Paste

End Sub


Cet extrait représente ce qui va faire apparaître un élément du tableau.
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Trouver la première ligne vierge + y insérer valeur

les Scroll retracent ton utilisation des ascenceurs lors de l'enregistrement de la macro. si tu n'as pas besoin que l'utilisateur voit la feuille défiler à l'écran, ça ne sert à rien.

pour te placer en bas de ton tableau, je te propose :

Range("B65536").end(xlup).offset(1,0).Select

à la place du

Range("B7").Select

à tester
 

LeZéro

XLDnaute Nouveau
Re : Trouver la première ligne vierge + y insérer valeur

Premier problème résolu ! Bien vu, et surtout merci !:D

Mais reste encore une chose : il me faut copier en A, pour chaque ligne correspondant à ce premier élément, un prénom. Celà doit donc se faire de façon dynamique (le nombre de lignes pouvant changer) et, évidemment, toujours en se plaçant à la fin du tableau.

En clair, pour l'instant le prénom devrait apparaître 12 fois dès A7 (=> A18).
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Trouver la première ligne vierge + y insérer valeur

alors, une proposition :

Code:
[FONT=Microsoft Sans Serif]Sub Macro2()[/FONT]
[FONT=Microsoft Sans Serif]Dim Ligne1 as long, Ligne2 as long
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[/FONT]
[FONT=Microsoft Sans Serif]Ligne1=Range("B65536").end(xlup).offset(1,0).row[/FONT]
[FONT=Microsoft Sans Serif]Range("B" & Ligne1).select[/FONT]
[FONT=Microsoft Sans Serif]ActiveSheet.Paste
Ligne2 =Range("B65536").end(xlup).row[/FONT]
[FONT=Microsoft Sans Serif]Range("A" & Ligne1 &":A" & Ligne2).Value = "Prénom"
End Sub[/FONT]
 

LeZéro

XLDnaute Nouveau
Re : Trouver la première ligne vierge + y insérer valeur

Bien que ne m'y connaissant pas trop en VBA (sans blague !:rolleyes:), je vais me risquer à dire que tu es assez impressionant de réactivité et d'efficacité !

Réussir du premier coup sans voir aucune feuille. Excellent sens théoriquo-VBesque ! Merci.
 

LeZéro

XLDnaute Nouveau
Re : Trouver la première ligne vierge + y insérer valeur

Bonjour !

Salut tototiti,
En fait, dans chaque élément de mon tableau, il y a une deuxieme partie que je dois coller depuis ma feuille source. Or cette deuxieme partie ne respecte pas la condtion de se coller après la dernière ligne du tableau (puisque forcément, dans le code, elle est séparée de la premiere partie collée).
Donc, au final, je voudrais que cette deuxième partie respecte la condition d'aller à ligne après la dernière ligne du tableau (dans son ensemble !).

Voyez plutôt :

Sub planing()

Dim Ligne7 As Long, Ligne8 As Long
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
Ligne1 = Range("B65536").End(xlUp).Offset(1, 0).Row
Range("B" & Ligne1).Select
ActiveSheet.Paste
Ligne2 = Range("B65536").End(xlUp).Row
Range("A" & Ligne1 & ":A" & Ligne2).Value = "Ajilon"

Sheets("introduction").Select
Cells.Select
Range("D5").Activate
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="=1", Operator:=xlOr, _
Criteria2:="=2"
Selection.AutoFilter Field:=13, Criteria1:="x"
Range("AY71:AY1404").Select
Range("AY1404").Activate
Selection.Copy
Sheets("planing").Select
Range("K65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste


End Sub
 

LeZéro

XLDnaute Nouveau
Re : Trouver la première ligne vierge + y insérer valeur

Ca se colle juste à droite de la première partie. Ca occupe la colonne K quoi.

En fait ce que j'ai mis en rouge comprend aussi une tentative de reproduire la même chose, en vain que pour la première partie. Je parle de "Range("K65536").End(xlUp).Offset(1, 0).Select".

Finalement, il me faudrait un code à la place de celui là qui ordonne aux valeurs en K de se positionner sur la ligne après la dernière cellule pleine en B.
 
Dernière édition:

LeZéro

XLDnaute Nouveau
Re : Trouver la première ligne vierge + y insérer valeur

Je me suis mal exprimé.

Cette seconde partie, doit se trouver au même niveau (en ligne) que la première. Ainsi ton dernier code, décale la seconde partie juste au dessous la première.

Autrement dit, il faudrait faire en sorte que la seconde partie soit comme intégrée à la première. COmme s'il n'y avait qu'un Collé (je dis ça pour éclaircir).
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
1 K

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16