[XL 2003] Fonction For

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

B

boubmarley

Guest
Bonjour,

Apres de nombreuses recherche, je finis par venir vous demander de l'aide concernant ma macro.

Je souhaite deux choses:
-choisir les valeurs que je veux dans une fonction for (je veux les valeurs 4,6,7,10,17,19,...! mais pas des 5,8,9,11 ,...)

-ensuite je voudrais accelerer ma macro (en me renseignant, j'ai découvert que les select n'etait pas conseillés)



Pour que ce soit plus clair, voici un bout de ma macro

Dim i As Integer
Dim j As Integer
Dim h As Integer

h = 4




For j = (4) To (70)

Windows("Classeur 1.xls"). _
Activate
Sheets("Feuille 1").Select
Range("D4").Select
ActiveCell.FormulaR1C1 = j
Range("E15:E175").Select
Selection.Copy
Windows("Classeur 2.xls"). _
Activate
Sheets("Feuille 1").Select
Cells(3, h).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Windows("Classeur 1.xls"). _
Activate
Sheets("Feuille 1").Select
Range("D9😀12").Select
Selection.Copy
Windows("Classeur 2.xls"). _
Activate
Sheets("Feuille 2").Select
Cells(j, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

If j = 4 Then
j = 5
End If

If j = 7 Then
j = 9
End If


If j = 17 Then
j = 18
End If

If j = 19 Then
j = 59
End If

h = h + 1

Next j


Merci de votre aide
 
Re : [XL 2003] Fonction For

Bonjour le fil 🙂,
A tester
Code:
Dim i As Integer, j As Integer, h As Integer
h = 4
For j = 4 To 70
With Windows("Classeur 1.xls").Sheets("Feuille 1")
.Range("D4").FormulaR1C1 = j
Windows("Classeur 2.xls").Sheets("Feuille 1").Cells(3, h).Resize(159).Value = .Range("E15:E175").Value
Windows("Classeur 2.xls").Sheets("Feuille 2").Cells(j, 4).Resize(3).Value = .Range("D9:D12").Value
End With
If j = 4 Then
j = 5
ElseIf j = 7 Then
j = 9
ElseIf j = 17 Then
j = 18
ElseIf j = 19 Then
j = 59
End If
h = h + 1
Next j
Bonne suite 😎
 
Re : [XL 2003] Fonction For

Merci pour ces réponses mais j'ai encore un soucis...

Notament sur ton code JNP:

sur la ligne With Windows("Classeur 1.xls").Sheets("Feuille 1")

il me repond:

"erreur d'éxécution '438'
propriété ou méthode non gérée par cet objet"

et malgré mes recherches je ne comprend pas...
 
Re : [XL 2003] Fonction For

La macro marche sans erreur mais j'ai encore un petit soucis...!

Elle ne copie pas les valeurs dans le 2eme classeur (en 1ere ou 2eme feuille)

Cependant elle change bien mes valeurs de j car en déroulement pas à pas je vois les valeurs changer
 
Re : [XL 2003] Fonction For

Re 🙂,
J'ai surtout réduit le code, mais sans le fichier, difficile de te dire 🙄...
Pour moi, il ne parait pas logique de faire une boucle pour copier toujours les mêmes valeurs à des emplacements différents, mais bon, c'est à toi de voir 😛...
Bonne suite 😎
 
Re : [XL 2003] Fonction For

J'aimerais bien partager le fichier mais je n'en ai pas le droit...

cependant j'ai réussi a faire copier mes valeurs en rajoutant cela:

Workbooks("Classeur 2.xls").Sheets("Feuille 1").Cells(3, h).Resize(159).Value = Workbooks("Classeur 1.xls").Sheets("Feuille 1").Range("E15:E174").Value
Workbooks("Classeur 2.xls").Sheets("Feuille 2").Cells(4, (h - 1)).Resize(3).Value = Workbooks("Classeur 1.xls").Sheets("Feuille 2").Range("D9😀13").Value


Mais j'ai un probleme (oui juste un dernier):
malgré le fait que je demande de copier E15:E174; il me copie jamais la derniere ligne... (il me copie E15:E175).
Y a t-il une explication?
 
- 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

Réponses
7
Affichages
178
Réponses
10
Affichages
792
Réponses
15
Affichages
788
Réponses
18
Affichages
597
Retour