Copier cellules d'une feuile a une autre avec conditions
Résolu/Fermé
fikou
Messages postés
7
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
11 février 2019
-
9 févr. 2019 à 06:54
fikou Messages postés 7 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 11 février 2019 - 11 févr. 2019 à 14:23
fikou Messages postés 7 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 11 février 2019 - 11 févr. 2019 à 14:23
A voir également:
- Copier cellules d'une feuile a une autre avec conditions
- Comment copier une vidéo youtube - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Aller à la ligne dans une cellule excel - Guide
- Super copier - Télécharger - Gestion de fichiers
- Verrouiller cellules excel - Guide
7 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 9 févr. 2019 à 08:52
Modifié le 9 févr. 2019 à 08:52
Bonjour
Option Explicit
'-----------------------------------
Sub copier_si()
If Sheets(1).Range("A1") = Sheets(2).Range("G2") Then
Sheets(2).Range("A1:E1") = Sheets(1).Range("B1:F1").Value
End If
End Sub
fikou
Messages postés
7
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
11 février 2019
10 févr. 2019 à 07:28
10 févr. 2019 à 07:28
Bonjour,
Merci pour ce bout de code.
Ce que j'ai oublié de dire c'est que la colonne de la feuil1 est une clé unique et pas dans la feuil2 qui a plusieurs occurrences et que j'ai 300 lignes à copier.
Donc il faut que j'implémente une boucle. Je connais le VB mais pas trop le VBA et les spécificité Excel.
Il faut sortir de la boucle dès la première ligne vide de feuil2 et c'est la dessus que je sèche.
Bon dimanche
FikoU
Merci pour ce bout de code.
Ce que j'ai oublié de dire c'est que la colonne de la feuil1 est une clé unique et pas dans la feuil2 qui a plusieurs occurrences et que j'ai 300 lignes à copier.
Donc il faut que j'implémente une boucle. Je connais le VB mais pas trop le VBA et les spécificité Excel.
Il faut sortir de la boucle dès la première ligne vide de feuil2 et c'est la dessus que je sèche.
Bon dimanche
FikoU
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
11 févr. 2019 à 11:05
11 févr. 2019 à 11:05
bonjour
pour la première ligne vide d'une colonne
ligvid=columns("A")Find(what:="",after:=Range("A1"), lookin:=xlvalues).Row
en supposant qu'il y ait quelque chose dans A1 et pas de cellule vide avant la dernière ligne occupée dans la colonne
pour la première ligne vide d'une colonne
ligvid=columns("A")Find(what:="",after:=Range("A1"), lookin:=xlvalues).Row
en supposant qu'il y ait quelque chose dans A1 et pas de cellule vide avant la dernière ligne occupée dans la colonne
fikou
Messages postés
7
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
11 février 2019
11 févr. 2019 à 11:39
11 févr. 2019 à 11:39
Merci Michel,
J'ai tenter d'écrire un bout de code mais cela ne fonctionne pas
Option Explicit
'-----------------------------------
Sub copier_si()
Dim i, j As Integer
j = 2
i = 2
While i <> 289
If Sheets(2).Range("A" & i) = Sheets(1).Range("G" & j) Then
Sheets(1).Range("A" & j & ":F" & j).Value = Sheets(2).Range("A" & i & ":F" & i).Value
j = j + 1
Else
i = i + 1
End If
Wend
End Sub
A bientôt et encore merci
FikoU
J'ai tenter d'écrire un bout de code mais cela ne fonctionne pas
Option Explicit
'-----------------------------------
Sub copier_si()
Dim i, j As Integer
j = 2
i = 2
While i <> 289
If Sheets(2).Range("A" & i) = Sheets(1).Range("G" & j) Then
Sheets(1).Range("A" & j & ":F" & j).Value = Sheets(2).Range("A" & i & ":F" & i).Value
j = j + 1
Else
i = i + 1
End If
Wend
End Sub
A bientôt et encore merci
FikoU
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fikou
Messages postés
7
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
11 février 2019
11 févr. 2019 à 11:41
11 févr. 2019 à 11:41
En fait je n'ai plus d'erreur mais rien ne se copie ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
11 févr. 2019 à 14:11
11 févr. 2019 à 14:11
Pourquoi ne pas créer une requete dans ta base entre la clé primaire et la clé étrangère et transporter le résultat dans Excel ?
fikou
Messages postés
7
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
11 février 2019
11 févr. 2019 à 14:23
11 févr. 2019 à 14:23
Je ne connais pas les requêtes sous Excel……
Si tu as une piste cela m'intéresse.
J'ai réussi avec ce code :
Option Explicit
'-----------------------------------
Sub copier_si()
Dim i, j As Integer
j = 2
i = 2
While i <> 296
While Sheets("DB_PINN").Range("A" & i) = Sheets("DB_MILL").Range("G" & j)
''On copie
Sheets(1).Range("A" & j & ":F" & j).Value = Sheets(2).Range("A" & i & ":F" & i).Value
j = j + 1
Wend
i = i + 1
Wend
End Sub
Je cherchais du compliqué mais pour finir c'est asser simple.
Je ne programme pas souvent donc la machine est longue à relancer
Un grand merci à toi
@+FikoU
Si tu as une piste cela m'intéresse.
J'ai réussi avec ce code :
Option Explicit
'-----------------------------------
Sub copier_si()
Dim i, j As Integer
j = 2
i = 2
While i <> 296
While Sheets("DB_PINN").Range("A" & i) = Sheets("DB_MILL").Range("G" & j)
''On copie
Sheets(1).Range("A" & j & ":F" & j).Value = Sheets(2).Range("A" & i & ":F" & i).Value
j = j + 1
Wend
i = i + 1
Wend
End Sub
Je cherchais du compliqué mais pour finir c'est asser simple.
Je ne programme pas souvent donc la machine est longue à relancer
Un grand merci à toi
@+FikoU