![]() |
|
Forum
|
|
|||||||
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
bonjour tous,
je me permets de vous posez cette question, à priori basique, mais les solutions proposées ds les différents fils que j'ai consultés ne marchent pas... mon soucis du jour: j'ai une première feuille avec des données tjrs classées pareillement, et un bouton. j'ai également une seconde feuille avec un tableau avec des formats conditionnels et des formules dans certaines cases. quand j'appuie sur le bouton de la première feuille, les données s'y trouvant sont ajoutées à la dernière ligne du tableau de la seconde feuille. jusqu'ici, rien de compliqué... le hic, c'est que je suis obligé de pré-remplir les lignes avec les formats conditionnels et les formules, il n'y a que les valeurs qui sont envoyées d'une feuille à l'autre. du coup, ça alourdi pas mal mon fichier. ce que je voudrais c'est que qd j'appuie sur le bouton, après la recherche de la dernière ligne vide du tableau, j'insère une ligne ayant les mêmes propriétés que la précédente. et là patatra, ça marche pas! j'ai beau essayer les "range(i,j).insert shift:=xldown", "entirerow.insert", etc... ça marche pas! ça me renvoit tjrs le même mesage d'erreur: "insert method of range class failed" alors si vous aviez une idée, chuis preneur... merci! |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonjour
J'ai une petite macro qui recopie les formule, le format conditionnel sur une ligne en dessous de la selection, tu peux peut être l'adapter à ton classeur. Sub NouvelleLigneEnDessous() Dim i As Integer Dim j As Integer Dim NumLig As Integer Dim DerCol As Integer Dim tbl As Range Dim Z As Range Dim plage As Range Application.ScreenUpdating = False Set tbl = [A1].CurrentRegion Set plage = Application.Union(Range(Selection.Address), Range(tbl.Offset(3, 0).Resize(tbl.Rows.Count - 5, tbl.Columns.Count).Address)) If plage.Address <> tbl.Offset(3, 0).Resize(tbl.Rows.Count - 5, tbl.Columns.Count).Address Then MsgBox "Placez-vous dans la zone " & tbl.Offset(3, 0).Resize(tbl.Rows.Count - 5, tbl.Columns.Count).Address: Exit Sub For j = 1 To Selection.Rows.Count ActiveCell.Range("A2").EntireRow.Insert NumLig = ActiveCell.Row DerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(NumLig, 1), Cells(NumLig, DerCol)).Copy Range(Cells(NumLig + 1, 1), Cells(NumLig + 1, DerCol)) For i = 1 To DerCol If Not Cells(NumLig + 1, i).HasFormula Then Cells(NumLig + 1, i).ClearContents End If Next i Next j ActiveCell.Range("A2").Select Application.ScreenUpdating = True End Sub @+ |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
apparemment, et je dis bien "apparemment", le pb viendrais du fait que tout se passe depuis la feuille n°1... on peut pas selectionner des lignes ou coller des lignes à distance? c'est louche...
|
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
en faisant
Private Sub CommandButton1_Click() 'on effectue l'opération dans la 1ère feuille Un End Sub Private Sub CommandButton2_Click() 'on effectue l'opération dans la 2de feuille Deux End Sub ------- Dans un module Sub Un() Rows(5).Copy Rows(6) End Sub Sub Deux() Rows(5).Copy Sheets("Sheet2").Rows(6) End Sub ça fonctionne mais je travaille sur Mac @+ |
| Liens sociaux |
| Outils de la discussion | |
|
|