Ecrire à l'ntersection de ligne et colonne

Résolu
Erock -  
Erock49 Messages postés 10 Statut Membre -
Bonjour,

J'ai lu différents sujets concernant ma question mais aucune réponse ne me satisfait...

Je voudrais écrire à l'intersection d'une ligne et d'une colonne :

En selectionnant la colonne et la ligne (par les résultats des textbox (ou listbox à voir si c'est mieux))

Puis écrire dans cette case le résultat d'une autre textbox.

Image :

http://img109.imageshack.us/content.php?page=done

Merci d'avance
Configuration: Windows Vista
Opera 9.64

35 réponses

  • 1
  • 2
Résumé de la discussion

Le problème décrit vise à écrire à l’intersection d’une ligne et d’une colonne dans Excel via VBA, en sélectionnant ligne et colonne avec textbox ou listbox puis en écrivant le contenu d’un autre champ. Selon la solution retenue, on repère la ligne associée au produit dans la colonne des noms, puis on parcourt les colonnes jusqu’à trouver la semaine et on écrit la quantité. L’approche utilise des variables et des boucles, échec ciblé par des messages lorsque le produit ou la semaine n’est pas trouvé, et elle peut nécessiter d’ajuster les noms de feuilles et plages. Pour aller plus loin, il est utile de tester avec des données simulées et d’envisager une interface utilisateur plus robuste, plutôt que des InputBox.

Bobot (l'IA à votre service)
  1. moiced59 Messages postés 1161 Statut Membre 60
     
    c koi ton lien?
    0
  2. moiced59 Messages postés 1161 Statut Membre 60
     
    tiens ceci peut interesser

    i = InputBox("a quel ligne souhaitez vous ecrire?")
    j =InputBox("a quel colonne souhaitez vous ecrire?")

    Message = InputBox("que souhaitez vous ecrire?")
    Range((j) & (i)).Value = Message
    0
  3. Erock
     
    Rebonjour et bonne année :D :

    Le lien c'était une image mais le lien n'est pas bon.

    moiced59, j'ai essayé, mais il aime pas la dernière ligne de code

    Mais il aime pas la dernière ligne du programme : Range((j) & (i)).Value = Message

    :/

    Et ce programme n'interrogera que les noms de colonnes genre A, B, ZA... ?

    Je remets un lien de l'image en espérant que ca marche :

    http://img43.imageshack.us/img43/9756/sanstitremn.jpg
    0
  4. moiced59 Messages postés 1161 Statut Membre 60
     
    Oui je l ai modifié un peu je te donne le new

    ligne:
    i = InputBox("a quel ligne souhaitez vous ecrire?")
    If IsNumeric(i) Then
    Else
    MsgBox "Vous devez indiquer une ligne au format numerique"
    GoTo ligne
    End If

    colonne:
    j = InputBox("a quel colonne souhaitez vous ecrire?")
    If IsNumeric(j) Then
    MsgBox "Vous devez indiquer une colonne au format texte"
    GoTo colonne
    End If

    Message = InputBox("que souhaitez vous ecrire?")
    Range((j) & (i)).Value = Message
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Erock
     
    Peut on dire:

    'entre le nom du produit' >> ca trouve la ligne ou il y a ce produit

    'entrez le nom de la semaine' >>> ca trouve la colonne ou il y a la semaine

    Et apres écriture dans cette case.

    Ca éviterait de chercher la ligne et la colonne.

    Merci encore ;)
    0
  7. moiced59 Messages postés 1161 Statut Membre 60
     
    oui c possible!!!
    il faut modifier un peu le code comment se presente ton fichier explique moi bien kon ne recommence pas a chaque fois
    0
  8. Erock
     
    Ok : donc

    Un utilisateur désire passer une commande d'un produit à une certaine semaine:

    Donc dans un tableau on retrouve dans une colonne les noms de produits et sur une ligne les semaines (1 à 52)

    Et je voudrais que par l'interface VBA on interroge l'utilisateur sur la commande qu'il désir faire :
    on lui demande donc le produit qu'il veut commander (donc ca trouve la ligne du tableau)
    on lui demande la semaine (ca trouve la colonne) et donc dans la cellule correspondante l'utilisateur entre la quantité de la commande qu'il désire faire.

    J'avais essayé les fonctions intersect et Vlookup (solutions trouvées à des problèmes similaires sur le forum) mais vu que je ne suis pas calé en VBA ca ne marchait pas.

    Désolé je me suis mal exprimé :/ .
    0
  9. moiced59 Messages postés 1161 Statut Membre 60
     
    voila

    saisie = InputBox("quel nom de produit recherchez vous?")
    saisie2 = Val(InputBox("quel numero de semaine recherchez vous?"))

    y = Worksheets("feuil1").Cells(1, "A").End(xlDown).Row + 1
    i = 1

    Do Until i = y
    If saisie = Cells(i, 1).Value Then
    Z = i
    GoTo b
    Else
    i = i + 1
    End If
    Loop
    If i = y Then
    MsgBox "aucune concordance pour le produit de trouvé "
    Exit Sub
    End If
    b:
    c = 2
    Do Until c = 52
    If saisie2 = Cells(Z, c).Value Then
    MsgBox "Ligne trouvé"
    Cells(Z, c).Select
    Exit Sub
    Else
    c = c + 1
    End If
    Loop

    If c = 30 Then
    MsgBox "aucune concordance pour la semaine de trouvée "
    Exit Sub
    End If
    0
  10. moiced59 Messages postés 1161 Statut Membre 60
     
    juste une petite modif le c de la fin c pas 30 mais 52
    0
  11. Erock
     
    La cellule qui fait l'intersection des deux données c'est bien Cells(z, C) ?

    Sinon le programme m'affiche toujours la msgbox: MsgBox ("aucune concordance pour la semaine de trouvée ")

    Est ce qu'il faudrait définir C comme tu as défini Y (y = Worksheets("feuil1").Cells(1, "A").End(xlDown).Row + 1) en remplaçant par les termes qui conviennent ?

    Merci encore pour ton aide en tout cas !
    0
  12. moiced59 Messages postés 1161 Statut Membre 60
     
    bah vu ton explication je t explique ce que fais le programme

    il compte d 'abord combien de produit tu as ?
    puis:
    il cherche si ta saisie = a un des produits si oui il regarde ds la meme ligne et regarde colonne par colonne si il trouve le numero de semaine

    pour t colonne pas besoin de les numeroté c peut etre 53 pas 52 si ta 1ere colonne c tes nom de produit
    0
  13. Erock
     
    MMMMMMmmm

    En tout cas il me met toujours la msgbox :/
    Et il ne met jamais celle comme quoi il a touvé la ligne :/
    0
  14. moiced59 Messages postés 1161 Statut Membre 60
     
    poste ton fichier
    0
  15. moiced59 Messages postés 1161 Statut Membre 60
     
    va sur cijoint.fr
    0
  16. Erock49 Messages postés 10 Statut Membre
     
    http://www.cijoint.fr/cjlink.php?file=cj201001/cijowWvD0m.xlsm
    0
  17. moiced59 Messages postés 1161 Statut Membre 60
     
    Ah je comprend mieux !!!!!

    ok le code né pas bon je croyais que tu voulais la colonne ou etait ecris 52 par exemple mais c pas ca g compris je fais la modif
    0
  18. moiced59 Messages postés 1161 Statut Membre 60
     
    ton formulaire fou la merde!!
    car tu ne peux pas selectionné une cellule si formulaire ouvert supprime le

    Worksheets("Feuil1").Activate

    saisie = InputBox("quel nom de produit recherchez vous?")
    h:
    saisie2 = Val(InputBox("quel numero de semaine recherchez vous?")) + 1
    If saisie2 > 52 Or saisie < 1 Then
    MsgBox "saisie interdite!!! veuillez recommencer"
    GoTo h
    End If
    y = Worksheets("feuil1").Cells(4, "A").End(xlDown).Row + 1
    i = 4

    Do Until i = y
    If saisie = Cells(i, 1).Value Then
    Cells(i, saisie2).Activate
    Exit Sub
    Else
    i = i + 1
    End If
    Loop
    If i = y Then
    MsgBox "aucune concordance trouvé "
    Exit Sub
    End If
    0
  19. Erock49 Messages postés 10 Statut Membre
     
    Ok ca marche impec ! Merci beaucoup !

    Dernière question si je veux écrire dans cette case par le biais d'une inputbox je fais comment ?
    0
  20. moiced59 Messages postés 1161 Statut Membre 60
     
    bah c ce que je viens de faire !!!!

    il faut virer ton formulaire et mettre unne inputbox
    0
  • 1
  • 2