VBA : copier coller de pls onglets ac boucle
Résolu/Fermé
Sapinours
Messages postés
4
Date d'inscription
mercredi 29 septembre 2010
Statut
Membre
Dernière intervention
1 octobre 2010
-
30 sept. 2010 à 10:41
Sapinours Messages postés 4 Date d'inscription mercredi 29 septembre 2010 Statut Membre Dernière intervention 1 octobre 2010 - 1 oct. 2010 à 08:51
Sapinours Messages postés 4 Date d'inscription mercredi 29 septembre 2010 Statut Membre Dernière intervention 1 octobre 2010 - 1 oct. 2010 à 08:51
A voir également:
- VBA : copier coller de pls onglets ac boucle
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Vba dernière colonne non vide ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
4 réponses
cousinhub29
Messages postés
868
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
8 mars 2024
342
30 sept. 2010 à 12:15
30 sept. 2010 à 12:15
Re-,
T'inquiète, tout le monde apprend tous les jours....
Perso, lorsque je déclare mes variables, je mets toujours la 1ère lettre en majuscule, voire si c'est un mot composé, plusieurs lettres en majuscule...
Cela permet de voir de suite, lorsque tu tapes ton code après avoir déclaré tes variables, si celles-ci sont immédiatement reconnues par excel...
Du style :
Et je ne mets sur la même ligne de déclaration que les variables de même portée...
Mais ceci n'est que ma manière de faire, chacun restant libre....
Bonne journée
T'inquiète, tout le monde apprend tous les jours....
Perso, lorsque je déclare mes variables, je mets toujours la 1ère lettre en majuscule, voire si c'est un mot composé, plusieurs lettres en majuscule...
Cela permet de voir de suite, lorsque tu tapes ton code après avoir déclaré tes variables, si celles-ci sont immédiatement reconnues par excel...
Du style :
Dim Cel As Range Dim DerLig As Long Dim I As Byte Dim MonMsg As String
Et je ne mets sur la même ligne de déclaration que les variables de même portée...
Dim Cel As Range, DerCel As Range Dim DerLig As Long Dim I As Byte, J As Byte Dim MonMsg As String
Mais ceci n'est que ma manière de faire, chacun restant libre....
Bonne journée
Decapsuleur
Messages postés
40
Date d'inscription
mercredi 11 août 2010
Statut
Membre
Dernière intervention
9 novembre 2010
46
30 sept. 2010 à 11:38
30 sept. 2010 à 11:38
Bonjour,
1- virez tous les .Select en trop,
2- Déclarez vos variables :
3- Vérifiez la boucle, cela me semble étrange... Vous avez 2 For : For x et For y, mais un seul Next.......
1- virez tous les .Select en trop,
2- Déclarez vos variables :
Sub Macrocopiercoller() Dim x, y As Integer For x = 2 To 17400 For y = 2 To 3600 If Sheets("Feuil1").Cells(x, 12).Value = Sheets("Feuil2").Cells(y, 3).Value Then Sheets("Feuil2").Cells(y, 7).Copy Sheets("Feuil1").Cells(x, 17) End If Next End Sub
3- Vérifiez la boucle, cela me semble étrange... Vous avez 2 For : For x et For y, mais un seul Next.......
cousinhub29
Messages postés
868
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
8 mars 2024
342
30 sept. 2010 à 12:07
30 sept. 2010 à 12:07
Bonjour,
@ Decapsuleur, c'est très bien de déclarer les variables, mais comme tu les as déclarées, x est une variable Variant, et y Integer
La syntaxe correcte est plutôt :
@ Sapinours, tel qu'écrit le code, tu effectues 65 598 004 boucles!!!!
Je pense qu'on doit trouver plus rapide....
Si tu pouvais joindre un fichier exemple, exempt de toutes données confidentielles, avec la structure réelle du fichier, et chaque onglet comportant une vingtaine de lignes, on pourrait trouver un code plus adapté....
Pour joindre un fichier, tu peux le faire via http://www.cijoint.fr/
Bon courage
@ Decapsuleur, c'est très bien de déclarer les variables, mais comme tu les as déclarées, x est une variable Variant, et y Integer
La syntaxe correcte est plutôt :
Dim x As Integer, y As Integer
@ Sapinours, tel qu'écrit le code, tu effectues 65 598 004 boucles!!!!
Je pense qu'on doit trouver plus rapide....
Si tu pouvais joindre un fichier exemple, exempt de toutes données confidentielles, avec la structure réelle du fichier, et chaque onglet comportant une vingtaine de lignes, on pourrait trouver un code plus adapté....
Pour joindre un fichier, tu peux le faire via http://www.cijoint.fr/
Bon courage
Decapsuleur
Messages postés
40
Date d'inscription
mercredi 11 août 2010
Statut
Membre
Dernière intervention
9 novembre 2010
46
30 sept. 2010 à 12:09
30 sept. 2010 à 12:09
Salut cousin!
Merci du renseignement.
On apprends tous les jours.
A+
Merci du renseignement.
On apprends tous les jours.
A+
Sapinours
Messages postés
4
Date d'inscription
mercredi 29 septembre 2010
Statut
Membre
Dernière intervention
1 octobre 2010
1 oct. 2010 à 08:51
1 oct. 2010 à 08:51
Bonjour,
Merci pour votre aide mais j'ai trouvé !!!
Voici la bonne synthaxe.
Sub Macrocopiercoller()
Application.ScreenUpdating = False
Dim x As Integer
For x = 2 To 2070
Numeromatricule = Sheets("Feuil1").Cells(x, 14).Value
For y = 2 To 3600
If Numeromatricule = Sheets("Feuil2").Cells(y, 3).Value Then
Sheets("Feuil2").Cells(y, 7).Copy Sheets("Feuil1").Cells(x, 19)
End If
Next
Next
End Sub
Merci pour votre aide mais j'ai trouvé !!!
Voici la bonne synthaxe.
Sub Macrocopiercoller()
Application.ScreenUpdating = False
Dim x As Integer
For x = 2 To 2070
Numeromatricule = Sheets("Feuil1").Cells(x, 14).Value
For y = 2 To 3600
If Numeromatricule = Sheets("Feuil2").Cells(y, 3).Value Then
Sheets("Feuil2").Cells(y, 7).Copy Sheets("Feuil1").Cells(x, 19)
End If
Next
Next
End Sub