Aide programmation macro

Bonjour a tous,

je voudrais crée un macro qui effectue la même action sur toutes les onglets (çàd copier le formule des cases de la ligne du dessus), pour cela je peut utiliser l'enregistreur, mais ensuite j'aimerai qu'il le fasse non pas sur les cellules actives mais sur les même lignes sur chaque page. J'ai essayer de faire avec l'enregistreur mais il effectue l'action a chaque fois à partir de la cellules active de chaque onglet.

Je pense donc qu'il faudrait que je le fasse avec une variable qui contient le n° de la ligne a remplir, donc lors de l’exécution de la commande, il demande sur quel ligne il faut réaliser l'action mais je ne sais pas comment faire

merci d'avance pour votre aide

Bonjour

Avec un fichier il serait plus facile de t'aider

Tu y marques ce que tu veux exactement

Voila un fichier exemple

21exemple.zip (38.24 Ko)

Bonjour

Un essai

Merci beaucoup c'est bien l'effet que je cherchais

maintenant serait t'il possible d'avoir une petite explication sur le code pour que je puisse l'adapter parfaitement a mon ficher

Sub Recopie()
Dim Lg As Long
Dim Ws As Worksheet

  Lg = InputBox("numéro de ligne")
  If Lg < 3 Or Lg > Range("A65536").End(xlUp).Row Then
    MsgBox "Hors limite"
    Exit Sub
  End If
  Application.ScreenUpdating = False
  For Each Ws In Sheets
    If Ws.Name <> ActiveSheet.Name Then
      Ws.Range("A" & Lg - 1 & ":C" & Lg - 1).Copy  'commentaire : il ne copie que les cellules A à C ?
      Ws.Range("A" & Lg).PasteSpecial Paste:=xlPasteFormulas
    End If
  Next Ws
  Application.CutCopyMode = False
End Sub

Bonjour

Quelques explications dans le code

Il n'y a que des formules que dans les 3 premières cellules

J'ai encore une petite question es-ce que cette macro fonctionnerai

Sub extension_des_formules()
Dim Lg As Long
Dim Ws As Worksheet

  Lg = InputBox("numéro de ligne")
  If Lg > Range("A65536").End(xlUp).Row Then
    MsgBox "Hors limite"
  If Lg < 3 Then
   MsgBox "Rentrer les formules manuellement" 
    Exit Sub
  End If
  Application.ScreenUpdating = False
  For Each Ws In Sheets
    If Ws.Name <> ActiveSheet.Name Then
      Ws.Range("A" & Lg - 1 & ":J" & Lg - 1).Copy
      Ws.Range("A" & Lg).PasteSpecial Paste:=xlPasteFormulas
    End If
  Next Ws
  Application.CutCopyMode = False
End Sub

Et Est il possible de rendre le bouton plus accecible car ma liste de donnée importer est très longue, elle il possible de le figer a une possition exacte ?

Bonjour

Il faut modifier le code

j3r3my a écrit :

If Lg > Range("A65536").End(xlUp).Row Then

MsgBox "Hors limite"

Exit Sub

ElseIf Lg < 3 Then

MsgBox "Rentrer les formules manuellement"

Exit Sub

End If

Pour avoir toujours le bouton à portée de la souris, une solution : Places le dans la 1ère ligne (comme tu as figé les volets), quitte à agrandir cette ligne

Bonne nuit

Merci beaucoup je vais marquer le sujet comme résolu

Rechercher des sujets similaires à "aide programmation macro"