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
577

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87