Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

modifier contenu de macro avec autre macro

jad73

XLDnaute Occasionnel
bonjour le forum
je voudrais modifier la ligne "Range("C10958:V10971").Select" c'est à dire ajouter +1 a 10958 et 10971 pour qu'ils deviennent 10959 et 10972 a l'aide d'une autre macro.
comment faut-il l'écrire
voici la macro à modifier(module38) chaque fois que je cliquerais sur le bouton de l'autre macro

Code:
Sub Macro12()
'
' Macro12 Macro
' copie 14 tirages vers anonc
'

'
    Sheets("Feuil1").Select
    Range("C10958:V10971").Select
    Selection.Copy
    Sheets("anonc").Select
    Range("X4").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Range("AL2").Select
End Sub

merci
 

pierrejean

XLDnaute Barbatruc
Re : modifier contenu de macro avec autre macro

Bonjour jad73

Voila comment je traiterai le problème
Attention : Valable tant que l'on ne ferme pas le fichier (si cela ne convient pas ,ne pas hésiter à revenir)

Code:
Public ligne1 As Long
Public ligne2 As Long
Sub Macro12(ligne1, ligne2)
'
' Macro12 Macro
' copie 14 tirages vers anonc
'


'
    Sheets("Feuil1").Range("C" & ligne1 & ":V" & ligne2).Copy
    Sheets("anonc").Range("X4").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Range("AL2").Select
End Sub
Sub bouton()
If ligne1 = 0 Then
  ligne1 = 10958
Else
  ligne1 = ligne1 + 1
End If
If ligne2 = 0 Then
  ligne2 = 10971
Else
  ligne2 = ligne2 + 1
End If
Call Macro12(ligne1, ligne2)
End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : modifier contenu de macro avec autre macro

Bonjour jad73, pierrejean.


Une autre proposition, paramétrée et utilisant une formule nommée :​
VB:
Option Explicit
'Paramètres :
Const FOrig$ = "Feuil1", FDest$ = "anonc"
Const Plg$ = "C10958:V10971", Adr$ = "X4", Sel$ = "AL2"
Const Compteur$ = "Compteur"

Sub InitialiseCompteur()
'Remet le Compteur à zéro.

    With ThisWorkbook
      .Names.Add Name:=Compteur, RefersTo:="=0"
      .Names(Compteur).Comment = "Décalage de Worksheets(""" & FOrig & """).Range(""" & Plg & """)"
    End With
End Sub

Sub IncrémentCompteur()
'Incrémente le Compteur au pas de un.

  With ThisWorkbook.Names(Compteur): .RefersTo = "=" & 1 + Evaluate(.Value): End With
End Sub

Sub Macro12()

  With ThisWorkbook

'Copie la plage Plg décalée du nombre de lignes spécifié par le Compteur.

    .Worksheets(FOrig).Range(Plg).Offset(Evaluate(.Names(Compteur).Value)).Copy

    Application.ScreenUpdating = False
    With .Worksheets(FDest)
      .Range(Adr).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=True
      Application.CutCopyMode = False
      .Activate
      Application.ScreenUpdating = True
      .Range(Sel).Select
    End With
  End With
End Sub
Note : Le compteur est conservé à la fermeture du classeur.

Merci à jad73 de n'avoir pas fourni de support pour tester : on s’ennuierait ferme si on ne devait pas reconstituer le classeur !
(Pas grave : le temps des bénévoles, c'est gratos...)


Bonne journée.


ℝOGER2327
#7515


Samedi 21 Phalle 141 (Saint Erbrand, polytechnicien - fête Suprême Tierce)
14 Fructidor An CCXXII, 0,7506h - noix
2014-W35-7T01:48:06Z
 

Pièces jointes

  • Décalage incrémenté.xlsm
    22.7 KB · Affichages: 47

Discussions similaires

Réponses
3
Affichages
591
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…