[vba/excel] rechercher et transferer données
Fermé
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
-
26 févr. 2008 à 15:40
Utilisateur anonyme - 27 févr. 2008 à 18:24
Utilisateur anonyme - 27 févr. 2008 à 18:24
A voir également:
- [vba/excel] rechercher et transferer données
- Rechercher ou entrer l'adresse - Guide
- Si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Rechercher et remplacer word - Guide
19 réponses
i = 1 'si la première valeurr est sur la ligne 1
while range("A"+cstr(i))<>" ' si A est la collone des données
worksheets("feuilCible").range("celleulecible").value = range("A"+cstr(i)).value
i = i+1
wend
while range("A"+cstr(i))<>" ' si A est la collone des données
worksheets("feuilCible").range("celleulecible").value = range("A"+cstr(i)).value
i = i+1
wend
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
26 févr. 2008 à 16:05
26 févr. 2008 à 16:05
merci
mais je ne vois a quel moment ce code s'occupe de prendre les valeurs janvier 1999, février 1999 etcc.....
a quoi sert CStr ??
mais je ne vois a quel moment ce code s'occupe de prendre les valeurs janvier 1999, février 1999 etcc.....
a quoi sert CStr ??
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
>
Utilisateur anonyme
26 févr. 2008 à 19:15
26 févr. 2008 à 19:15
ok d'accord mais ca ne répond pas a mon probleme
Utilisateur anonyme
27 févr. 2008 à 08:47
27 févr. 2008 à 08:47
Désolé mais cela correspond "en tous points" à la description du premier message. Il vous faut adapter les coordonnes des données d'origine et de destination.
rappel prendre les données de la première colonne et les transfeérer dans une autre feuille !
Puisque vous êtes comme St Thomas, cliquez sur l'ural suivante et vérifiez !
C'est un fichier excel qui fait ce que vous demandez.
https://www.cjoint.com/?cBi54hj6Ow
rappel prendre les données de la première colonne et les transfeérer dans une autre feuille !
Puisque vous êtes comme St Thomas, cliquez sur l'ural suivante et vérifiez !
C'est un fichier excel qui fait ce que vous demandez.
https://www.cjoint.com/?cBi54hj6Ow
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 09:43
27 févr. 2008 à 09:43
oui d'accord dans ce cas la ca marche mais dans ma colonne A de la première feuille j'ai des données de ce type
Janvier 1999
Janvier 2000
Février 1999
Mars 1999
Mars 2000
Mars 2001
Avril 1999
etc...
je ne veux transferer que les données correspondant a l'année 1999 pas les autres
de plus je dois envoyer aussi le contenu des cellules qui se trouvent sur la droite de chaque ligne
par exemple pour janvier 1999 je dois aussi transferer ce qui se trouve dans les cellules se situant sur la meme ligne
Janvier 1999
Janvier 2000
Février 1999
Mars 1999
Mars 2000
Mars 2001
Avril 1999
etc...
je ne veux transferer que les données correspondant a l'année 1999 pas les autres
de plus je dois envoyer aussi le contenu des cellules qui se trouvent sur la droite de chaque ligne
par exemple pour janvier 1999 je dois aussi transferer ce qui se trouve dans les cellules se situant sur la meme ligne
Utilisateur anonyme
27 févr. 2008 à 09:50
27 févr. 2008 à 09:50
Bonjour
alors il faut faire une sélection avec un if
exemeple
annee= right(range("A"+cstr(i)).value,4)
if annee = 1999 alors on copie sinon rien on passe au suivant
alors il faut faire une sélection avec un if
exemeple
annee= right(range("A"+cstr(i)).value,4)
if annee = 1999 alors on copie sinon rien on passe au suivant
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 09:52
27 févr. 2008 à 09:52
ok je vais essayer
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 10:10
27 févr. 2008 à 10:10
comment préciser que je veux aussi copier les cellules qui se trouvent a coté
Utilisateur anonyme
27 févr. 2008 à 10:12
27 févr. 2008 à 10:12
bonjour, (re)
la sélection porte alors sur un groupe de cellule exemple A2:H2 cellules A2 à H2
ou encore
A2: G4 cellules A2 à G4 (plusieur lignes plusieurs colonnes)
une combine :
faire outils macro nouvelle macro
tout ce qui est alors fait dans le tableur est enregistré
quand on a fini, on fait
outils macro arrêter l'enregistrement
puis outils macro macro on sélectionne la macro, on clique sur modifier et là on voit le code qu'il faut pour faire ce qu'on a fait !
la sélection porte alors sur un groupe de cellule exemple A2:H2 cellules A2 à H2
ou encore
A2: G4 cellules A2 à G4 (plusieur lignes plusieurs colonnes)
une combine :
faire outils macro nouvelle macro
tout ce qui est alors fait dans le tableur est enregistré
quand on a fini, on fait
outils macro arrêter l'enregistrement
puis outils macro macro on sélectionne la macro, on clique sur modifier et là on voit le code qu'il faut pour faire ce qu'on a fait !
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 10:15
27 févr. 2008 à 10:15
je suis pas très doué tu peux me l'incorporer au code précédent?
Utilisateur anonyme
27 févr. 2008 à 10:22
27 févr. 2008 à 10:22
if annee = 1999 then
'sélection des cellules A à K de la ligne i
Range("A"+cstr(i) + ":K"+cstr(i).Select
Selection.Copy
'copie sur la feuil2 à partir de la cellule A3
Sheets("Feuil2").Select
Range("A3").Select
ActiveSheet.Paste
end if
'sélection des cellules A à K de la ligne i
Range("A"+cstr(i) + ":K"+cstr(i).Select
Selection.Copy
'copie sur la feuil2 à partir de la cellule A3
Sheets("Feuil2").Select
Range("A3").Select
ActiveSheet.Paste
end if
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 10:28
27 févr. 2008 à 10:28
en regardant tout ca je me demande si pour la suite je ne vais pas avoir de soucis
mon tableau et comme suit
Janvier 1999 127510 5 0 5 4 0 0 0 0 0 0 0 3
Mars 1999 127510 0 0 0 0 0 0 0 0 0 0 0 0
Mars 2000 127510 0 0 0 0 0 0 0 0 0 0 0 0
Mars 1999 127510 0 0 0 0 0 0 0 0 0 0 0 0
Janvier 2000 127530 2 4 3 2 1 6 7 8 9 10 11 12
Janvier 2001 127540 1 2 3 4 5 6 7 8 9 10 11 12
Mai 1999 127530 5 4 3 2 1 2 3 4 5 6 7 8
Janvier 1999 127510 0 0 0 0 0 0 0 0 0 0 0 0
127510 est un numéro de secteur
plusieurs secteur appartiennent a un groupe
je dois en fait faire des comparaisons entre chaque groupe
par exemple connaitre l'evolution du groupe 1 entre 1999 et 2000 et ceux pour chaque mois
je ne sais pas si je part sur de bonnes bases
mon tableau et comme suit
Janvier 1999 127510 5 0 5 4 0 0 0 0 0 0 0 3
Mars 1999 127510 0 0 0 0 0 0 0 0 0 0 0 0
Mars 2000 127510 0 0 0 0 0 0 0 0 0 0 0 0
Mars 1999 127510 0 0 0 0 0 0 0 0 0 0 0 0
Janvier 2000 127530 2 4 3 2 1 6 7 8 9 10 11 12
Janvier 2001 127540 1 2 3 4 5 6 7 8 9 10 11 12
Mai 1999 127530 5 4 3 2 1 2 3 4 5 6 7 8
Janvier 1999 127510 0 0 0 0 0 0 0 0 0 0 0 0
127510 est un numéro de secteur
plusieurs secteur appartiennent a un groupe
je dois en fait faire des comparaisons entre chaque groupe
par exemple connaitre l'evolution du groupe 1 entre 1999 et 2000 et ceux pour chaque mois
je ne sais pas si je part sur de bonnes bases
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 10:47
27 févr. 2008 à 10:47
sinon j'ai mis ca dans ma feuille
Sheets("Données").Select
i = 1 'si la première valeurr est sur la ligne 1
While Range("A" + CStr(i)) <> " ' si A est la collone des données "
annee = Right(Range("A" + CStr(i)).Value, 4)
If annee = 1999 Then
Range("A" + CStr(i) & ":K" + CStr(i)).Select
Selection.Copy
Sheets("par secteur").Select
Range("A3").Select
ActiveSheet.Paste
End If
i = i + 1
Wend
j'obtient comme erreur la méthode 'range' de l'objet '_global' a echoué
Sheets("Données").Select
i = 1 'si la première valeurr est sur la ligne 1
While Range("A" + CStr(i)) <> " ' si A est la collone des données "
annee = Right(Range("A" + CStr(i)).Value, 4)
If annee = 1999 Then
Range("A" + CStr(i) & ":K" + CStr(i)).Select
Selection.Copy
Sheets("par secteur").Select
Range("A3").Select
ActiveSheet.Paste
End If
i = i + 1
Wend
j'obtient comme erreur la méthode 'range' de l'objet '_global' a echoué
Utilisateur anonyme
27 févr. 2008 à 11:16
27 févr. 2008 à 11:16
Range("A" + CStr(i) & ":K" + CStr(i)).Select
mettre un + à la place du &
mettre un + à la place du &
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 11:22
27 févr. 2008 à 11:22
j'ai essayer mais ca ne marche pas
sinon tu penses que mes bases par rapport a mon probleme sont bonnes ?
sinon tu penses que mes bases par rapport a mon probleme sont bonnes ?
Utilisateur anonyme
27 févr. 2008 à 11:31
27 févr. 2008 à 11:31
Bonjour,
Le principe que je te donne est correct il faut ensuite l'adapter à ton dossier, pas obligatoirement recopier textuellement les exemples.
En effet le nom des feuilles, les références des lignes et colonnes doivent être modifiés en conséquence.
D'autre part tu es le seul à savoir ce que ton application doit faire, à toi donc de la programmer en fonction des spécifications que tu auras définies.
Le principe que je te donne est correct il faut ensuite l'adapter à ton dossier, pas obligatoirement recopier textuellement les exemples.
En effet le nom des feuilles, les références des lignes et colonnes doivent être modifiés en conséquence.
D'autre part tu es le seul à savoir ce que ton application doit faire, à toi donc de la programmer en fonction des spécifications que tu auras définies.
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 11:37
27 févr. 2008 à 11:37
le probleme est la je vois ce que je veux a peu près mais n'arrive pas a le mettre en forme
Utilisateur anonyme
27 févr. 2008 à 11:55
27 févr. 2008 à 11:55
Voilà un code qui fonctionne, mais attention je ne suis pas là pour faire ton travail
https://www.cjoint.com/?cBl3jm1gKq
https://www.cjoint.com/?cBl3jm1gKq
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 12:01
27 févr. 2008 à 12:01
ca m'a l'air pas mal je vais essayer d'adapter ca
je te tiens au courant
je te tiens au courant
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 févr. 2008 à 14:53
27 févr. 2008 à 14:53
bon je reviens a la charge
en complétant le code j'arrive a transferer mes données pour 2 années par exemple 1999 et 2000
j'obtient une feuille de ce style
http://www.cijoint.fr/cjlink.php?file=cj200802/cij61222535723.xls.
le but maintenant est de comparer l'évolution de chaque groupe (1 et 2) entre 1999 et 2000 pour chaque mois
vers quoi je dois orienter mon travail
en complétant le code j'arrive a transferer mes données pour 2 années par exemple 1999 et 2000
j'obtient une feuille de ce style
http://www.cijoint.fr/cjlink.php?file=cj200802/cij61222535723.xls.
le but maintenant est de comparer l'évolution de chaque groupe (1 et 2) entre 1999 et 2000 pour chaque mois
vers quoi je dois orienter mon travail
Utilisateur anonyme
27 févr. 2008 à 18:24
27 févr. 2008 à 18:24
Bonsoir,
le fichier n'est pas accessible.
pour la comparaison il suffit de comparer les cellules
les cellules sont référencées par leur adresse ligne colonne. c'est maintenant de l'algorithmie toute simple.
le fichier n'est pas accessible.
pour la comparaison il suffit de comparer les cellules
les cellules sont référencées par leur adresse ligne colonne. c'est maintenant de l'algorithmie toute simple.