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

Macro avec une variable

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 !

fabancel

XLDnaute Junior
Bonjour.

J'ai créé une macro qui copie certaines cellules de la feuille1 vers un tableau synthétique en feuille 2. quand je clique sur un bouton.

Seulement, La feuille 1 n'a pas le même nombre de lignes si elle concerne une société ou un groupe.
Si c'est une société, je vais copier la cellule B8, mais si c'est un groupe je copierai la cellule B11.

la macro que j'ai faite fonctionne avec if then. Mais du coup elle est assez lourde.

Sheets("export ARC").Activate
If Range("P4").Value Like "*societe*" Then

Sheets("export ARC").Activate
Range("AM21").Copy
Sheets("Synthèse").Activate
Range("D6").PasteSpecial Paste:=xlPasteValues

Sheets("export ARC").Activate
Range("AU21").Copy
Sheets("Synthèse").Activate
Range("B8").PasteSpecial Paste:=xlPasteValues
End If

Sheets("export ARC").Activate

If Range("P4").Value Like "*groupe*" Then
Sheets("export ARC").Activate
Range("AM17").Copy
Sheets("Synthèse").Activate
Range("D6").PasteSpecial Paste:=xlPasteValues

Sheets("export ARC").Activate
Range("AU17").Copy
Sheets("Synthèse").Activate
Range("B8").PasteSpecial Paste:=xlPasteValues
End If

Pouvez-vous m'expliquer comment je peux intégrer une variable dans mon code qui, en fonction du critère "groupe" ou "société", change de valeur ce qui donnerai

Sheets("export ARC").Activate
Range("AM17+i").Copy
Sheets("Synthèse").Activate
Range("D6").PasteSpecial Paste:=xlPasteValues

Merci beaucoup, encore une fois, pour votre aide précieuse.
 
Re : Macro avec une variable

Bonjour.
Comme ça peut être:
VB:
Dim L As Long
Sheets("export ARC").Activate
If Range("P4").Value Like "*societe*" Then
   L = 21
ElseIf Range("P4").Value Like "*groupe*" Then
   L = 17
   End If
If L > 0 Then
   With Worksheets("Synthèse")
      .[D6].Value = Cells(L, "AM").Value
      .[B8].Value = Cells(L, "AU").Value
      End With
   End If
À tester
À +
 
- 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

Discussions similaires

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