Aide Macro à reproduire

  • Initiateur de la discussion Initiateur de la discussion alexandre59
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

alexandre59

Guest
Bonjour à tous

Je viens de découvrir les macros, qui pourraient me faire gagner beaucoup de temps.

Je suis totalement novice en vba et n'ai besoin que d'une seule modification.

Je cherche à pouvoir réappliquer une petite macro (une simple somme), dans d'autres cellules.

Pour le moment, avec ma macro, la somme fonctionne mais l'étirement ne se réalise toujours que de G9à G13.

Quand je réalise la macro en cellule J18, j'aimerais que l'étirement fonctionne, à partir de J18 à J22.

Est-ce possible ? Je joins le fichier à ce message.

D'avance merci à tous pour votre aide.
 

Pièces jointes

Re : Aide Macro à reproduire

Bonsoir alexandre59 et bienvenu sur le forum
Au plus simple
La fonction OFFSET décale l'addresse de la cellule Cellule.adresse.Offset(Ligne, Colonne)
VB:
Sub Macro1_B()
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Selection.AutoFill Destination:=Range(ActiveCell.Address & ":" & ActiveCell.Offset(4, 0).Address), Type:=xlFillDefault
End Sub
Le code mettra la formule dans ta cellule active et la recopiera vers le bas sur 4 lignes
Cordialement
 
Re : Aide Macro à reproduire

Bonsoir

Merci beaucoup pour cette aide très précieuse. Tout marche très bien.

J'aurais mis des semaines pour trouver 🙂

Je vais sans doute tenter d'appliquer cela à une chose un peu plus compliquée (dépouillement de questionnaires).

Je reviens vers vous si problème.

Merci encore pour cet excellent forum.
 
Re : Aide Macro à reproduire

Rebonsoir

Je reviens vers vous, toujours pour le même problème, mais à appliquer à mon formulaire (c'est ma dernière demande, promis).

Voilà le topo : je cherche à appliquer ma macro à toute cellule sur laquelle je clique. Or, cela ne fonctionne pas comme je le voudrais.

Mon but est de me placer sur une cellule choisie, de créer 5 colonnes, de copier le contenu de plusieurs cellules et de le coller dans cette cellule choisie.

Autrement dit, je voudrais pouvoir faire marcher ma macro ailleurs qu'en K4, en créant toujours 5 colonnes, en collant toujours le contenu des cellules "C4:H88".

Voici ma macro :
Code:
Sub Macro3()
'
' Macro3 Macro
'

'
    Columns("K:K").Select
    Selection.Insert Shift:=xlToRight
    Selection.Insert Shift:=xlToRight
    Selection.Insert Shift:=xlToRight
    Selection.Insert Shift:=xlToRight
    Selection.Insert Shift:=xlToRight
    Range("C4:H88").Select
    Selection.Copy
    Range("K4").Select
    ActiveSheet.Paste
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.SmallScroll Down:=51
End Sub

D'avance, merci pour votre aide bien utile.

Avec cela, je pourrai dépouiller mon questionnaire + efficacement.
 
Dernière modification par un modérateur:
Re : Aide Macro à reproduire

Re
Pour ça c'est moins "simple"
Il est inutile de garder les lignes de type ActiveWindow.ScrollColumn. Ce ne sont que des résiduts de l'enregistreur de macro.
En VBA, il est très souvent, pour ne pas dire toujours, inutile de selectionner.
Donc, voici ma proposition, commentée:
VB:
Sub Macro3_B()
'On déclare une variable de type texte
Dim Col As String
'On découpe l'adresse de la cellule active (exemple $F$3) en la coupant avec les $
'et on récupère le paquet un (la lettre de la colonne)
Col = Split(ActiveCell.Address, "$")(1)
'On insert les colonnes Resize agrandi la zone
Columns(Col & ":" & Col).Resize(, 5).Insert Shift:=xlToRight
'On copie / Colle
Range("C4:H88").Copy ActiveCell
End Sub
Cordialement
 
Re : Aide Macro à reproduire

Rebonsoir

Merci énormément pour cette aide 🙂

Des opérations qui me prennaient des tonnes de clics se font maintenant instantanément.

Il reste à trouver comment copier dans Word mes sélections, sous forme de Macro (macro de Word, cette fois).

J'arrive à la créer (en Word mais la copie me conserve la mise en forme source alors que je voudrais une copie qui lie et utilise les styles de destination).

Je comprends si ma demande n'est pas valable, on touche ici à une macro Word et non plus Excel.

Merci encore pour ce que vous avez fait pour moi.

Code:
Sub Macro1()
'
' Macro1 Macro
'
'
    Selection.TypeParagraph
    Selection.PasteExcelTable False, False, False
End Sub

Merci encore pour tout.
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour