Activecell sur le mauvais onglet ??!!

Activecell sur le mauvais onglet ??!! - VB/VBA/VBS - Programmation

Marsh Posté le 13-02-2017 à 13:09:33    

Bonjour à tous !
 
Bon je l'avoue, je ne suis pas une super fortiche des macros.
Alors je ne fais que des choses très simples ...mais là je bloque. Je suis sûre que c'est évident et que quelqu'un va trouver tout de suite une solution !!
 
Voilà mon problème : j'ai une macro qui me permet d'insérer une ligne (et copier les formules) où qu'on se trouve dans la page excel.
Mais ici, j'ai plusieurs onglets. Je voudrais donc sélectionner tous les onglets pour que la ligne soit insérée dans tous les onglets au même endroit (je veux conserver le même nombre de ligne dans tous les onglets).
Tout marche comme je voudrais, sauf ... qu'au lieu de prendre la cellule active de l'onglet sur lequel je me trouve (après selection de tous les onglets), ma macro prend comme référence la cellule du premier onglet pour insérer la ligne !
Vous savez pourquoi ???
 
Voici mon "code" (il est surement redondant mais pour l'instant je fais avec ;)
 
 
Sub Macro2()
'
' Macro2 Macro
Sheets(Array("Feuil1", "Feuil2", "Feuil3" )).Select
Sheets("Feuil2" ).Activate
ActiveCell.EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Sheets(Array("Feuil1", "Feuil2", "Feuil3" )).Select
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
Sheets("Feuil2" ).Select
 
End Sub

 
N'hésitez pas à me dire si ma demande n'est pas claire (ou carrément bête!!) et merci pour votre aide !
 
Astrid38

Reply

Marsh Posté le 13-02-2017 à 13:09:33   

Reply

Marsh Posté le 13-02-2017 à 20:08:58    

Ca me parait bizarre que ta macro fasse bien ce que tu decris.  
 
Je te conseile de lire ce petit paragraphe, voire toute la page: http://silkyroad.developpez.com/VB [...] s/#LII-C-4
 
En lancant ta macro pas a pas, quand tu selectionnes toutes les feuilles l'activecell va s'aligner sur la premiere feuille activee.  
 
Si tu as A1 sur feuil1, A2 sur feuil2, A3 sur feuil3, toutes les feuilles vont activer la celulle A1.  
Ensuite la ligne est inseree seulement sur feuil2, et la ligne corespondante est ensuite juste effacee. (selection.clearcontents)
 
 
J'ai aussi fait un enregistrement de macro qui devrait correspondre a ce que tu decris.  
 
Par contre:
- J'utilise la version anglaise donc faudra peut etre remplacer Sheet par Feuil
- Ca ne fonctionne que pour 3 feuilles qui auront strictement les noms indiques. Si tu veux le rendre plus dynamique il faudra soit adapter pour creer l'array soit faire une boucle sur toutes les feuilles.
 

Code :
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. '
  5. '
  6.     ActiveCell.EntireRow.Select
  7.     Selection.Copy
  8.     Sheets(Array("Sheet1", "Sheet2", "Sheet3" )).Select
  9.     Selection.Insert Shift:=xlDown
  10.     Application.CutCopyMode = False
  11. End Sub


Message édité par x140hu4 le 13-02-2017 à 20:09:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed