Code fonctionne une fois sur 2

Bonsoir,

J'ai un petit soucis sur mon code, il réalise comme il faut la tâche seulement une fois sur 2.

Il faudrait que je demande un nom de client. Que puisse vérifier qu'il se trouve dans le 2 ème tableaux puis que je copie toutes les information du dlient trouvé dans une autres feuille? Mais je comprend pas pq mon code ne fonctionne pas tres bien? De plus concernant l'adress sur la ficge, il faudrait que je puisse écrire dans la même case le numéro, l'adresse la ville et le code zip ce que je n'arrive pas à faire.

Une petite aide me ferai le plus grand bien

79368357 2470309936558956 4321932333339901952 n 80113521 2943222229023656 1147869386116169728 o

j'ai oublié de poster mon code, le voila

79510633 2800655613319375 7761289122605432832 n

C'est sûr que travailler sur des images, ce n'est pas pratique ! On renvoie aussi une image ?

Trève de plaisanterie, je propose plus de générer une macro par apprentissage d'un filtre avancé ... cela donne une seule ligne de code (légèrement retravaillée)

    Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Range("A1").CurrentRegion, CopyToRange:=Range("A4").CurrentRegion.Resize(1), Unique:=False
Sub edition()

Dim T_client(), T_commande()
Dim i_client As Integer, num_client As Integer, prenom As String, adress As String, num_adress As Integer, ville As String, zip As Long

T_client = Range("J7:P25").Value
Sheets("client").Activate

nom = InputBox("Nom du client ?")
MsgBox UBound(T_client)

For i_client = 1 To UBound(T_client)
    If (nom = T_client(i_client, 2)) Then
        prenom = T_client(i_client, 3)
        num_client = T_client(i_client, 1)
        num_adress = T_client(i_client, 5)
        adress = T_client(i_client, 4)
        ville = T_client(i_client, 6)
        zip = T_client(i_client, 7)

       Sheets("fiche").Activate
         Range("C2").Value = nom + " " + prenom
         Range("E2").Value = num_client
         Range("C3").Value = num_adress + " " + zip

         i_client = UBound(T_client)
    End If
Next i_client
End sub

C'est sûr que travailler sur des images, ce n'est pas pratique ! On renvoie aussi une image ?

Trève de plaisanterie, je propose plus de générer une macro par apprentissage d'un filtre avancé ... cela donne une seule ligne de code (légèrement retravaillée)

    Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Range("A1").CurrentRegion, CopyToRange:=Range("A4").CurrentRegion.Resize(1), Unique:=False

MErci pour ton conseil, mais c'est vrai que je ne suis pas trop une experte en vba, je vois pas très bien ce que fait cette macro ...

Ton code a l'air pas mal du tout !

Mais je ne comprends pas ce qui se passe une fois sur 2 ? aucun résultat ?

J'ai un petit soucis sur mon code, il réalise comme il faut la tâche seulement une fois sur 2.

je pense que le mieux justement est de répondre à ceci ...

Bonjour à tous,

Pourquoi as-tu mis ça ?

i_client = UBound(T_client)

Tu mets l'indice de la boucle à son maximum, et tu forces une sortie prématurée de cette boucle.

Gênant à moins qu'il n'ait qu'une ligne unique systématiquement...

Comme dit Steelson, que se passe-t-il 1 fois/2 ?

eric

Ton code a l'air pas mal du tout !

Mais je ne comprends pas ce qui se passe une fois sur 2 ? aucun résultat ?

Il rentre dans la boucle une fois sur 2. Une fois il complète la fiche et une autre il ne fait rien

Bonjour à tous,

Pourquoi as-tu mis ça ?

i_client = UBound(T_client)

Oui, c'est pour que dès qu'il a trouvé le nom, il sorte de la boucle

Oui, c'est pour que dès qu'il a trouvé le nom, il sorte de la boucle

En effet, c'est pas con ! Il existe aussi une instruction pour cela :
Exit For

Bon on attend toujours un fichier représentatif...

Bon on attend toujours un fichier représentatif...

Le voila je ne savais pas comment le joindre. J'ai réussi à résoudre le problème mais mtn je suis face à un autre...

6vba1.xlsx (19.19 Ko)

J'essaye de compléter une fiche client avec des infromation se trouvant dans les deux autres feuille. J'y arrive quand le client n'a qu'une seul commande mais quand il en à plusieur je beug... Une petite idée ?

Merci pour le fichier.

Il vaut mieux inverser l'ordre de ces 2 instructions :

Sheets("client").Activate
T_client = Range("J7:P25").Value

ou préciser

T_client = Sheets("client").Range("J7:P25").Value

je ne sais pas comment était lancée cette macro, mais c'est peut-être de là que venait l'erreur si elle était lancée d'une autre feuille !

J'ai une erreur sur cette ligne. Le num_adress et le zip étant numérique, il faut remplacer + par &

Range("C3").Value = num_adress & " " & zip

Après, la macro fait bien ce qui est écrit ...

Sub edition()

Dim T_client(), T_commande()
Dim i_client As Integer, num_client As Integer, prenom As String, adress As String, num_adress As Integer, ville As String, zip As Long

T_client = Sheets("client").Range("J7:P25").Value

nom = InputBox("Nom du client ?")

For i_client = 1 To UBound(T_client)
    If (nom = T_client(i_client, 2)) Then
        prenom = T_client(i_client, 3)
        num_client = T_client(i_client, 1)
        num_adress = T_client(i_client, 5)
        adress = T_client(i_client, 4)
        ville = T_client(i_client, 6)
        zip = T_client(i_client, 7)

       Sheets("fiche").Activate
         Range("C2").Value = nom + " " + prenom
         Range("E2").Value = num_client
         Range("C3").Value = num_adress & " " & adress & " " & zip & " " & ville

         Exit For
    End If
Next i_client

End Sub

Oui tu as raison c'est bon, juste par hasard tu sais comment je pourrai générer un pdf de la feuille fiche en code ?

Oui tu as raison c'est bon,

Je suis certain maintenant que le problème venait bien du fait que
Range("J7:P25").Value
n'était pas toujours pris dans la bonne feuille

Quand tu fais des macros, utilise aussi debug.print pour caractériser le problème

juste par hasard tu sais comment je pourrai générer un pdf de la feuille fiche en code ?

soyons rigoureux,

D'abord

Ensuite ouvre un autre post pour ce sujet (c'est important pour les recherches futures)

du reste il y a un tas d'exemple, fais une recherche sur le forum

Rechercher des sujets similaires à "code fonctionne fois"