Simplification macro incluant un select case

  • Initiateur de la discussion Initiateur de la discussion philpeene
  • 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 !

P

philpeene

Guest
Bonsoir la communauté,
Voila j'ai créé une suite de macros en piochant un peu partout sur le net, je voudrais la simplifié. Y a t il une solution pour le faire au niveau du select case, macro concerné: copiesouscondition() module2.
Ensuite, y a t il une equivalence d'un index equiv en vba sans passer par "formula" ?
Merci d'avance de vos réponses.

Pour info le fichier ne contient que les macros
 

Pièces jointes

Re : Simplification macro incluant un select case

Bonsoir philpeene le forum,
déjà le début de ton code tu peux le changer comme ci-dessous, (cela retire 79 lignes de code)
après si on savait ce que tu souhaites ce serait plus simple car là tu veux recopier dans toutes les feuilles de ot1 à ot80 en passant par case je ne vois pas le pourquoi?
alors si tu expliques un peu on fera peut-être plus simple!!
a+
Papou 🙂

Code:
Sub copiesouscondition1()
    Dim i&
    For i = 1 To 80
        ot& i = Worksheets("ot").Range("A" & i).Value
    Next i
 
Re : Simplification macro incluant un select case

bonsoir Patou, le but de cette macro est de faire un copier coller sous condition. Je voudrais extraire toutes les lignes de la feuille "brut" qui contiendraient la meme valeur cellule en colonne f en comparant par rapport aux valeurs de la colonne A de la feuille "ot" et extraire les lignes lorsqu'il y a concordance sur la feuille " final".
Ci-joint un extrait du fichier
A+
 

Pièces jointes

Re : Simplification macro incluant un select case

Bonsoir à tous
Pas sûr d'avoir tout compris...
À tout hasard, essayez ce code (à placer dans un module quelconque) :
Code:
[COLOR="DarkSlateGray"][B]Sub tata()
Dim i&, n&, plage As Range, cod As Range, x
  n = 1
  With Sheets("brut"): Set plage = .[A1].Resize(.Cells(.Rows.Count, 1).End(xlUp).Row, 22): End With [COLOR="Sienna"]'plage de données[/COLOR]
  With Sheets("ot"): Set cod = .[A1].Resize(.Cells(.Rows.Count, 1).End(xlUp).Row, 1): End With [COLOR="Sienna"]'plage des codes de comparaison[/COLOR]
  With Sheets("final")
    .Range(.[A1], .Cells.SpecialCells(xlCellTypeLastCell)).Offset(1, 0).Clear
    On Error Resume Next
    For i = 2 To plage.Count
      x = WorksheetFunction.Match(plage.Cells(i, 6), cod, 0)
      If Err.Number = 0 Then: n = n + 1: plage.Rows(i).Copy Destination:=.Cells(n, 1): Else: Err.Clear
    Next i
    On Error GoTo 0
  End With
End Sub[/B][/COLOR]
ROGER2327
#4380


Jeudi 19 Haha 138 (Saint Raphael, apéritif et philistin, SQ)
3 Brumaire An CCXIX
2010-W42-7T23:20:31Z
 
- 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

A
Réponses
12
Affichages
2 K
AnjyD
A
D
Réponses
2
Affichages
947
D
J
Réponses
2
Affichages
1 K
jff74650
J
C
Réponses
5
Affichages
2 K
CestPasMoi
C
Retour