VBA copier la valeur d'une cellule tableau

Résolu
Slyy Messages postés 15 Statut Membre -  
moiced59 Messages postés 1161 Statut Membre -
Bonjour,

Est-il possible, à l'aide d'une macro, de copier la valeur d'une cellule contenue dans un tableau en fonction du nom de la colonne du tableau et du nom de la ligne du tableau rentrés par l'utilisateur (2 inputbox) ?
La valeur de la cellule choisie est ensuite collée dans une autre cellule de la feuille hors du tableau.

Si oui, par quelle fonction dois-je passer?

Merci à tout ceux qui pourront m'aiguiller.

Slyy
Configuration: Windows XP Internet Explorer 7.0

10 réponses

  1. moiced59 Messages postés 1161 Statut Membre 60
     
    slt
    via une macro oui
    on va dire que tu veux copier sur la ligne 100 colonne 5

    i = inputbox ("quel ligne voulez vous copiez?")
    ii= nputbox ("quel colonne voulez vous copiez?")
    cells(100,5)=cells(i,ii)

    voila tu as le principe
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Mais tu peu aussi employer la fonction InputBox d'excel pour te renvoyer la sélection. et ensuite la copier.
    Exemple
    Sub Copier()
    Dim Adresse As Range
        'en supposant que tu veux copier en A10
        Set Adresse = Application.InputBox("Choisissez la sélection que vous voulez copier", "Copie cellule(s)", Type:=8)
        Adresse.Copy Range("A10")
    End Sub

    A+

    0
  3. Slyy Messages postés 15 Statut Membre
     
    Merci pour vos precieux conseils.

    Par contre dans ma macro, la ligne et la colonne ne correspondent pas à des cases excel (comme par exemple 100 et 5) mais à des caractères spécifiques à mon tableau.

    Dans mon tableau, il s'agit de référence 1 à 8 en colonne (ce qui correspond à une recherche de la colonne H à la colonne W dans la feuille) et des types de voitures en ligne (coupé, cabriolé...) ce qui correspond à une recherche de la ligne 28 à 43.
    L'utilisateur doit donc remplir d'abord la référence (N°1 à 8) et ensuite remplir le type de voiture qu'il souhaite.

    Et c'est avec ces données que je dois trouver la valeur de la cellule corespondant à la référence et au type de voiture.

    Merci encore.
    0
  4. moiced59 Messages postés 1161 Statut Membre 60
     
    cela n'a pas l 'air d 'etre compliqué mais je comprend pas tro si tu peux poster ton fichier et donné un exemple
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Slyy Messages postés 15 Statut Membre
     
    Tout d'abord je tiens à te remercier moiced59 pour ton aide. Je ne suis pas arrivé à poster mon fichier excel sur le comentaire donc je le met dans ce message ci-dessous.

    Dans cet exemple, seulement 6 types de voitures ont été rentrés sur les 16 possibilités du tableau et il y a 7 références sur les 8 possibles.

    J'ai donc ce tableau sur ma feuille.

    Le premier inputbox demande à l'utilisateur la référence voiture (par exemple 3) ensuite le second inputbox demande le type de voiture (par exemple Coupé).
    La macro copie la valeur contenue dans la case correspondante à la demande (ici 2,23) et la copie dans une case de la feuille (par exemple C62)
    RefVoitur  1	2	3	4	5	6	7	8
    TypeVoitur								
    Berline	4,87	3,00	4	4,00	5,70	3,00	3,87	0,00
    Coupé	8,32	5,14	2,23	4,32	4,45	9,90	7,54	0,00
    Cabriolé5,56	8,54	4,12	6,32	8,24	7,12	5,12	0,00
    CC	2,12	5,12	5,45	6,54	8,77	5,45	8,32	0,00
    Monospace9,54	6,23	4,75	5,21	9,25	8,25	6,24	0,00
    Sport	8,54	6,54	8,45	6,97	7,45	5,84	9,21	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00	0,00
    
    	
    0
  7. moiced59 Messages postés 1161 Statut Membre 60
     
    okk c bien ca que je pensais que tu cherchais :

    i = inputbox ("quel reference recherchez vous?")
    ii= nputbox ("quel type de voiture recherchez vous?")

    col = 2
    do until topmaj = false or colon <15

    if cells(1,col) = i then
    y = col
    topmaj = true
    else
    col = col +1
    end if
    loop
    if col = 15 then exit sub

    lig = 2
    do until topmaj = false or lign < 200
    if cells(lig,col) = ii then
    cells(62,3) = cells(lig,col)
    top maj = true
    exit sub
    else
    lig = lig +1
    end if
    loop
    if lig = 200 then msgbox "aucune concordance trouvé"

    voila g pas testé si il y a des erreur hesite pas
    0
  8. moiced59 Messages postés 1161 Statut Membre 60
     
    Voila g tester et modifier les erreur

    i = InputBox("quel reference recherchez vous?")
    ii = InputBox("quel type de voiture recherchez vous?")

    col = 2
    topmaj = False
    col = 2
    Do Until topmaj = True Or col > 15

    If Cells(1, col).Value = Val(i) Then
    y = col
    topmaj = True
    Else
    col = col + 1
    End If
    Loop
    If col = 15 Then Exit Sub

    topmaj = False
    lig = 1
    Do Until topmaj = True Or lign > 200
    tete = Cells(lig, 1)
    If tete = ii Then

    Cells(62, 3) = Cells(lig, col)
    topmaj = True
    Exit Sub
    Else
    lig = lig + 1
    End If
    Loop
    If lig = 200 Then MsgBox "aucune concordance trouvé"
    End Sub
    0
  9. Slyy Messages postés 15 Statut Membre
     
    Excellent!

    Par contre j'ai encore un petit soucil.

    Dans ma feuille excel, les références prennent chacune 4 cases excel (fusion de 2 lignes et de 2 colonnes).
    Du coup les 8 références du tableau vont de la colonne H à la colonne W (soit 16 colonnes en tout) et sont positionnées sur les lignes 2 et 3 de ma feuille.

    J'ai essayé de modifier ta macro en gardant la structure mais ca ne marche pas.
    Je pensais qu'en changeant le "col = col + 1" en "col = col + 2" ca incrémenterai correctement mais c'est pas ca.

    Aurais-tu une solution?
    0
  10. moiced59 Messages postés 1161 Statut Membre 60
     
    re

    Dc si t cellule sont fusionner c la colonne de gauche qui porte le nom des donné et la cellule du haut
    dc le code doit fonctionner com il est

    tu doit commencé avec un col = 8 mais tu dois allé jusque 24 8 + 2x8 colonne
    col = 2
    Do Until topmaj = True Or col > 24
    0
    1. Slyy Messages postés 15 Statut Membre
       
      Ca tourne IMPEC,

      Encore merci pour tout!
      0
  11. moiced59 Messages postés 1161 Statut Membre 60
     
    de rien @+
    0