Bonjour!
Je suis un étudiant en plein stage et j'aurais besoin d'aide!
Il y a 2 questions que j'aimerais poser :
- Premièrement, j'ai un classeur excel composé d'environ 35000 lignes, et je dois faire une comparaison entre deux colonnes A et B (comparer 2 références)
puis inscrire "O" ou "N" dans une autre colonne C, si la référence en A et la meme qu'en B. Pour se faire, je fais ceci :
Le problème est que le temps d'exécution est vraiment trop long ... Est-il possible d'optimiser un peu svp?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim finColDistrib As Long, finColOT As Long, i As Long Dim res As Variant, search As Variant Dim rng As Range Worksheets("Feuil1").Activate finColOT = Cells(Rows.Count, "B").End(xlUp).Row finColDistrib = Cells(Rows.Count, "A").End(xlUp).Row Set rng = Range("B3:B" & finColOT) For i = 3 To finColDistrib search = Range("A" & i) Set res = rng.Cells.Find(What:=search, LookAt:=xlWhole) If (res Is Nothing) Then Range("C" & i) = "N" ElseIf (res = search) Then Range("C" & i) = "O" End If Next i
- Deuxièmement, je copie une colonne avec une formule d'un classeur Class1 dans un autre classeur Class2, j'aimerais copier seulement la formule dans le Class2. Ca j'ai réussi :
Le problème est que, dans la formule, on a besoin des données qui se trouvent dans une autre feuille du classeur, et que donc, quand je copie la formule dans Class2, la formule va chercher les données nécessaires dans la Feuil2 de Class1 qui est le classeur d'ou je viens de copier la colonne... Il faudrait que la formule aille chercher les données dans la Feuil2 de Class2. Du coup, comment dois-je faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim classeurSrc As Excel.Workbook Set class1 = Workbooks.Open(cheminSrc & "Class1") class1.Worksheets("Feuil1").Activate finCol = Cells(Rows.Count, "A").End(xlUp).Row Range("A2:A" & finCol).Copy DisplayAlerts = False class2.Worksheets("Feuil1").Range("A2").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False DisplayAlerts = True class2.Save class1.Close
Je vous remercie d'avance!
Cordialement!
Partager