for next à partir des valeurs d'une requête Access
3 réponses
Hugo Degueldre
Bonjour,
A partir d'une requête Access comprenant deux champs (pour commencer)
le premier serait la référence d'une cellule dans laquelle je souhaite
placer du texte
le second est le texte en question
1, 1 pierre
4, 2 paul
6, 3 jacques
8, 10 joseph
10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule A1 de
la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test()
Dim compteur
For compteur = 1 To 5
Application.Goto (Worksheets("Feuil1").Cells(compteur, 2))
Selection.Copy
Dim celluleRecherchée
celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value
MsgBox celluleRecherchée
Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur
End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la
ligne 1.
C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me
renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la valeur
puis repérer l'adresse de la cellule voisine à gauche
atteindre cette cellule sur la Feuil2
y coller la valeur extraite
faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la 1ère
fois.
Je croyais travailler par analogie avec ce que je sais d'Access mais
manifestement c'est plus compliqué que prévu.
Merci d'avance
hd
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Y a un truc qui me paraît pas clair : 1, 1 --> A1 --> pierre... je comprends mais que "joseph" corresponde à 8, 10 .là je pige plus la logique !
En supposant que tu te sois trompé dans l'énoncé de la question . En A1:A5 toi à des chaînes sous la forme : nombre/virgule/espace/nombre représentant la colonne et la ligne
Sub zzz() For Each c In Sheets("Feuil1").[A1:A5] y = c.Address rw = Evaluate("mid(" & y & ",finc("",""," & y & ")+2,9^9)") * 1 col = Evaluate("left(" & y & ",find("",""," & y & ")-1)") * 1 Sheets("Feuil2").Cells(rw, col).Value = c.Offset(0, 1).Value Next End Sub
AV
"Hugo Degueldre" a écrit dans le message news: 3f3a4770$0$312$
Bonjour, A partir d'une requête Access comprenant deux champs (pour commencer) le premier serait la référence d'une cellule dans laquelle je souhaite placer du texte le second est le texte en question
1, 1 pierre 4, 2 paul 6, 3 jacques 8, 10 joseph 10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule A1 de la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test() Dim compteur For compteur = 1 To 5 Application.Goto (Worksheets("Feuil1").Cells(compteur, 2)) Selection.Copy Dim celluleRecherchée celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value MsgBox celluleRecherchée Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la ligne 1. C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la valeur puis repérer l'adresse de la cellule voisine à gauche atteindre cette cellule sur la Feuil2 y coller la valeur extraite faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la 1ère fois. Je croyais travailler par analogie avec ce que je sais d'Access mais manifestement c'est plus compliqué que prévu. Merci d'avance hd
Y a un truc qui me paraît pas clair :
1, 1 --> A1 --> pierre... je comprends
mais que "joseph" corresponde à 8, 10 .là je pige plus la logique !
En supposant que tu te sois trompé dans l'énoncé de la question .
En A1:A5 toi à des chaînes sous la forme :
nombre/virgule/espace/nombre
représentant la colonne et la ligne
Sub zzz()
For Each c In Sheets("Feuil1").[A1:A5]
y = c.Address
rw = Evaluate("mid(" & y & ",finc("",""," & y & ")+2,9^9)") * 1
col = Evaluate("left(" & y & ",find("",""," & y & ")-1)") * 1
Sheets("Feuil2").Cells(rw, col).Value = c.Offset(0, 1).Value
Next
End Sub
AV
"Hugo Degueldre" <hugo.degueldre@ville.namur.be> a écrit dans le message news:
3f3a4770$0$312$ba620e4c@reader0.news.skynet.be...
Bonjour,
A partir d'une requête Access comprenant deux champs (pour commencer)
le premier serait la référence d'une cellule dans laquelle je souhaite
placer du texte
le second est le texte en question
1, 1 pierre
4, 2 paul
6, 3 jacques
8, 10 joseph
10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule A1 de
la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test()
Dim compteur
For compteur = 1 To 5
Application.Goto (Worksheets("Feuil1").Cells(compteur, 2))
Selection.Copy
Dim celluleRecherchée
celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value
MsgBox celluleRecherchée
Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur
End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la
ligne 1.
C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me
renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la valeur
puis repérer l'adresse de la cellule voisine à gauche
atteindre cette cellule sur la Feuil2
y coller la valeur extraite
faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la 1ère
fois.
Je croyais travailler par analogie avec ce que je sais d'Access mais
manifestement c'est plus compliqué que prévu.
Merci d'avance
hd
Y a un truc qui me paraît pas clair : 1, 1 --> A1 --> pierre... je comprends mais que "joseph" corresponde à 8, 10 .là je pige plus la logique !
En supposant que tu te sois trompé dans l'énoncé de la question . En A1:A5 toi à des chaînes sous la forme : nombre/virgule/espace/nombre représentant la colonne et la ligne
Sub zzz() For Each c In Sheets("Feuil1").[A1:A5] y = c.Address rw = Evaluate("mid(" & y & ",finc("",""," & y & ")+2,9^9)") * 1 col = Evaluate("left(" & y & ",find("",""," & y & ")-1)") * 1 Sheets("Feuil2").Cells(rw, col).Value = c.Offset(0, 1).Value Next End Sub
AV
"Hugo Degueldre" a écrit dans le message news: 3f3a4770$0$312$
Bonjour, A partir d'une requête Access comprenant deux champs (pour commencer) le premier serait la référence d'une cellule dans laquelle je souhaite placer du texte le second est le texte en question
1, 1 pierre 4, 2 paul 6, 3 jacques 8, 10 joseph 10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule A1 de la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test() Dim compteur For compteur = 1 To 5 Application.Goto (Worksheets("Feuil1").Cells(compteur, 2)) Selection.Copy Dim celluleRecherchée celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value MsgBox celluleRecherchée Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la ligne 1. C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la valeur puis repérer l'adresse de la cellule voisine à gauche atteindre cette cellule sur la Feuil2 y coller la valeur extraite faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la 1ère fois. Je croyais travailler par analogie avec ce que je sais d'Access mais manifestement c'est plus compliqué que prévu. Merci d'avance hd
Hugo Degueldre
Bonjour, Tu avais bien déduit. C'est ça que je cherchais, merci. Avec une petite correction : Find au lieu de find et finc, aux lignes 4 et 5. Connais-tu un site d'initiation à ce genre de problèmes (et solutions) ? Encore merci et bonne journée hd
"AV" a écrit dans le message news: #
Y a un truc qui me paraît pas clair : 1, 1 --> A1 --> pierre... je comprends mais que "joseph" corresponde à 8, 10 .là je pige plus la logique !
En supposant que tu te sois trompé dans l'énoncé de la question . En A1:A5 toi à des chaînes sous la forme : nombre/virgule/espace/nombre représentant la colonne et la ligne
Sub zzz() For Each c In Sheets("Feuil1").[A1:A5] y = c.Address rw = Evaluate("mid(" & y & ",finc("",""," & y & ")+2,9^9)") * 1 col = Evaluate("left(" & y & ",find("",""," & y & ")-1)") * 1 Sheets("Feuil2").Cells(rw, col).Value = c.Offset(0, 1).Value Next End Sub
AV
"Hugo Degueldre" a écrit dans le message news:
3f3a4770$0$312$
Bonjour, A partir d'une requête Access comprenant deux champs (pour commencer) le premier serait la référence d'une cellule dans laquelle je souhaite placer du texte le second est le texte en question
1, 1 pierre 4, 2 paul 6, 3 jacques 8, 10 joseph 10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule A1 de
la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test() Dim compteur For compteur = 1 To 5 Application.Goto (Worksheets("Feuil1").Cells(compteur, 2)) Selection.Copy Dim celluleRecherchée celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value MsgBox celluleRecherchée Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la ligne 1. C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la valeur
puis repérer l'adresse de la cellule voisine à gauche atteindre cette cellule sur la Feuil2 y coller la valeur extraite faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la 1ère
fois. Je croyais travailler par analogie avec ce que je sais d'Access mais manifestement c'est plus compliqué que prévu. Merci d'avance hd
Bonjour,
Tu avais bien déduit.
C'est ça que je cherchais, merci.
Avec une petite correction : Find au lieu de find et finc, aux lignes 4 et
5.
Connais-tu un site d'initiation à ce genre de problèmes (et solutions) ?
Encore merci et bonne journée
hd
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message news:
#x5eQfbYDHA.2572@TK2MSFTNGP09.phx.gbl...
Y a un truc qui me paraît pas clair :
1, 1 --> A1 --> pierre... je comprends
mais que "joseph" corresponde à 8, 10 .là je pige plus la logique !
En supposant que tu te sois trompé dans l'énoncé de la question .
En A1:A5 toi à des chaînes sous la forme :
nombre/virgule/espace/nombre
représentant la colonne et la ligne
Sub zzz()
For Each c In Sheets("Feuil1").[A1:A5]
y = c.Address
rw = Evaluate("mid(" & y & ",finc("",""," & y & ")+2,9^9)") * 1
col = Evaluate("left(" & y & ",find("",""," & y & ")-1)") * 1
Sheets("Feuil2").Cells(rw, col).Value = c.Offset(0, 1).Value
Next
End Sub
AV
"Hugo Degueldre" <hugo.degueldre@ville.namur.be> a écrit dans le message
news:
3f3a4770$0$312$ba620e4c@reader0.news.skynet.be...
Bonjour,
A partir d'une requête Access comprenant deux champs (pour commencer)
le premier serait la référence d'une cellule dans laquelle je souhaite
placer du texte
le second est le texte en question
1, 1 pierre
4, 2 paul
6, 3 jacques
8, 10 joseph
10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule
A1 de
la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test()
Dim compteur
For compteur = 1 To 5
Application.Goto (Worksheets("Feuil1").Cells(compteur, 2))
Selection.Copy
Dim celluleRecherchée
celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value
MsgBox celluleRecherchée
Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur
End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la
ligne 1.
C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me
renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la
valeur
puis repérer l'adresse de la cellule voisine à gauche
atteindre cette cellule sur la Feuil2
y coller la valeur extraite
faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la
1ère
fois.
Je croyais travailler par analogie avec ce que je sais d'Access mais
manifestement c'est plus compliqué que prévu.
Merci d'avance
hd
Bonjour, Tu avais bien déduit. C'est ça que je cherchais, merci. Avec une petite correction : Find au lieu de find et finc, aux lignes 4 et 5. Connais-tu un site d'initiation à ce genre de problèmes (et solutions) ? Encore merci et bonne journée hd
"AV" a écrit dans le message news: #
Y a un truc qui me paraît pas clair : 1, 1 --> A1 --> pierre... je comprends mais que "joseph" corresponde à 8, 10 .là je pige plus la logique !
En supposant que tu te sois trompé dans l'énoncé de la question . En A1:A5 toi à des chaînes sous la forme : nombre/virgule/espace/nombre représentant la colonne et la ligne
Sub zzz() For Each c In Sheets("Feuil1").[A1:A5] y = c.Address rw = Evaluate("mid(" & y & ",finc("",""," & y & ")+2,9^9)") * 1 col = Evaluate("left(" & y & ",find("",""," & y & ")-1)") * 1 Sheets("Feuil2").Cells(rw, col).Value = c.Offset(0, 1).Value Next End Sub
AV
"Hugo Degueldre" a écrit dans le message news:
3f3a4770$0$312$
Bonjour, A partir d'une requête Access comprenant deux champs (pour commencer) le premier serait la référence d'une cellule dans laquelle je souhaite placer du texte le second est le texte en question
1, 1 pierre 4, 2 paul 6, 3 jacques 8, 10 joseph 10, 11 denis
Je souhaite créer une boucle qui me placerais "pierre" dans la cellule A1 de
la Feuil2, "joseph" dans la D2de la Feuil2 et ainsi de suite.
Je chipote depuis une heure et en faisant ceci :
Public Sub test() Dim compteur For compteur = 1 To 5 Application.Goto (Worksheets("Feuil1").Cells(compteur, 2)) Selection.Copy Dim celluleRecherchée celluleRecherchée = Worksheets("Feuil1").Cells(compteur, 1).Value MsgBox celluleRecherchée Application.Goto (Worksheets("Feuil2").Cells(celluleRecherchée))
ActiveSheet.Paste
Next compteur End Sub
cela me place ce que souhaite dans la bonne colonne mais toujours sur la ligne 1. C'est un bon début mais quelqu'un pourrait-il me donner le code (ou me renseigner l'endroit où chercher) qui ferait ceci :
pour chaque cellule de la colonne B de la Feuil1, en extraire la valeur
puis repérer l'adresse de la cellule voisine à gauche atteindre cette cellule sur la Feuil2 y coller la valeur extraite faire la boucle.
Ne hurlez pas, je viens de mettre mon nez dans VB poue Excel pour la 1ère
fois. Je croyais travailler par analogie avec ce que je sais d'Access mais manifestement c'est plus compliqué que prévu. Merci d'avance hd
AV
Avec une petite correction : Find au lieu de find et finc, aux lignes 4 et 5.
** Je me demande bien d'où sort ce "finc" en ligne 4 ...... !
Connais-tu un site d'initiation à ce genre de problèmes (et solutions) ? ** Ici ! ;-)
Si tu es spécifiquement intéressé par la méthode Evaluate, tu peux aller jetter un oeil là : http://disciplus.simplex.free.fr/classeursxl/av-evaluate.zip
AV
Avec une petite correction : Find au lieu de find et finc, aux lignes 4 et 5.
** Je me demande bien d'où sort ce "finc" en ligne 4 ...... !
Connais-tu un site d'initiation à ce genre de problèmes (et solutions) ?
** Ici ! ;-)
Si tu es spécifiquement intéressé par la méthode Evaluate, tu peux aller
jetter un oeil là :
http://disciplus.simplex.free.fr/classeursxl/av-evaluate.zip
Avec une petite correction : Find au lieu de find et finc, aux lignes 4 et 5.
** Je me demande bien d'où sort ce "finc" en ligne 4 ...... !
Connais-tu un site d'initiation à ce genre de problèmes (et solutions) ? ** Ici ! ;-)
Si tu es spécifiquement intéressé par la méthode Evaluate, tu peux aller jetter un oeil là : http://disciplus.simplex.free.fr/classeursxl/av-evaluate.zip