fonction Gauche en VBA excel

Le
franck B
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous excel,
pour recuperer les 4 premieres lettres d'une case, et cela de maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour reperer
les lignes ou il y a les données qui m'interressent, sachant que le nombre de
lignes est inconnu) je dois comparer les 4 premiers caractères avec une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4) Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la tete sur
cela depuis un moment

merci d'avance
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4810831
Bonsoir.
ton code :
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
est correct. Tu récupères bien les 4 caractères de gauche de
"Sheets("suivi").Cells(i, 4)"
Par contre, il manque du code entre If... et End If
Cordialement.
Daniel
"franck B" news:
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous
excel,
pour recuperer les 4 premieres lettres d'une case, et cela de maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour reperer
les lignes ou il y a les données qui m'interressent, sachant que le nombre
de
lignes est inconnu) je dois comparer les 4 premiers caractères avec une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne
maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4) Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou
resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la tete
sur
cela depuis un moment

merci d'avance


franck B
Le #4810781
merci pour la confirmation concernant la fonction left.

je souhaite maintenant pouvoir arreter la boucle while au moment ou le
second if (celui avec la condition <> left(Sheets("suivi").Cells(i,4),4)
validée), un peu à la maniere d'un break ou stop que l'on peut voir dans
d'autres langages

si une telle fonction existe en vba , je suis preneur


Bonsoir.
ton code :
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
est correct. Tu récupères bien les 4 caractères de gauche de
"Sheets("suivi").Cells(i, 4)"
Par contre, il manque du code entre If... et End If
Cordialement.
Daniel
"franck B" news:
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous
excel,
pour recuperer les 4 premieres lettres d'une case, et cela de maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour reperer
les lignes ou il y a les données qui m'interressent, sachant que le nombre
de
lignes est inconnu) je dois comparer les 4 premiers caractères avec une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne
maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4) Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou
resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la tete
sur
cela depuis un moment

merci d'avance







Daniel
Le #4810631
Avec While...Wend, je ne connais pas.
Par contre si tu utilises la syntaxe :
Do While ...
Exit Do
Loop
l'instruction "exit do te permets de sortir de la boucle.
Daniel
"franck B" news:
merci pour la confirmation concernant la fonction left.

je souhaite maintenant pouvoir arreter la boucle while au moment ou le
second if (celui avec la condition <> left(Sheets("suivi").Cells(i,4),4)
validée), un peu à la maniere d'un break ou stop que l'on peut voir dans
d'autres langages

si une telle fonction existe en vba , je suis preneur


Bonsoir.
ton code :
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
est correct. Tu récupères bien les 4 caractères de gauche de
"Sheets("suivi").Cells(i, 4)"
Par contre, il manque du code entre If... et End If
Cordialement.
Daniel
"franck B" news:
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous
excel,
pour recuperer les 4 premieres lettres d'une case, et cela de maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour
reperer
les lignes ou il y a les données qui m'interressent, sachant que le
nombre
de
lignes est inconnu) je dois comparer les 4 premiers caractères avec une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne
maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4)
Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou
resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la
tete
sur
cela depuis un moment

merci d'avance









Youky
Le #4810601
Salut Franck
Pour tester cette macro tu dois créer sur ton fichier une feuille nommée
"recup"
cette feuille est vidée et se remplie de nouveau à chaque macro
Sans savoir ce que tu veux faire exactement ...à tester
Youky
Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*", _
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
Sheets("recup").Cells.ClearContents
For lig = 8 To Sheets("suivi").[C65000].End(xlUp).Row
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
ligrecup = ligrecup + 1
Sheets("recup").Rows(ligrecup).Value = Sheets("suivi").Rows(lig).Value
End If
Next
If ligrecup = "" Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié" _
& " ou resultats multiples", vbInformation
End If
End Sub
"franck B" news:
merci pour la confirmation concernant la fonction left.

je souhaite maintenant pouvoir arreter la boucle while au moment ou le
second if (celui avec la condition <> left(Sheets("suivi").Cells(i,4),4)
validée), un peu à la maniere d'un break ou stop que l'on peut voir dans
d'autres langages

si une telle fonction existe en vba , je suis preneur


Bonsoir.
ton code :
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
est correct. Tu récupères bien les 4 caractères de gauche de
"Sheets("suivi").Cells(i, 4)"
Par contre, il manque du code entre If... et End If
Cordialement.
Daniel
"franck B" news:
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous
excel,
pour recuperer les 4 premieres lettres d'une case, et cela de maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour
reperer
les lignes ou il y a les données qui m'interressent, sachant que le
nombre
de
lignes est inconnu) je dois comparer les 4 premiers caractères avec une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne
maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4)
Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou
resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la
tete
sur
cela depuis un moment

merci d'avance









franck B
Le #4809401
bonsoir,

merci pour vos réponses, je n'ai malheuresement pas la possibilité de
regarder le newsgroup la journée. en effet la boucle do...exit do...while est
la solution la plus efficace pour sortir à la maniere d'un break.

je vais donc creuser la piste du do...exit do...while et je vous informerai
de l'avancement

merci à tous


Salut Franck
Pour tester cette macro tu dois créer sur ton fichier une feuille nommée
"recup"
cette feuille est vidée et se remplie de nouveau à chaque macro
Sans savoir ce que tu veux faire exactement ...à tester
Youky
Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*", _
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
Sheets("recup").Cells.ClearContents
For lig = 8 To Sheets("suivi").[C65000].End(xlUp).Row
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
ligrecup = ligrecup + 1
Sheets("recup").Rows(ligrecup).Value = Sheets("suivi").Rows(lig).Value
End If
Next
If ligrecup = "" Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié" _
& " ou resultats multiples", vbInformation
End If
End Sub
"franck B" news:
merci pour la confirmation concernant la fonction left.

je souhaite maintenant pouvoir arreter la boucle while au moment ou le
second if (celui avec la condition <> left(Sheets("suivi").Cells(i,4),4)
validée), un peu à la maniere d'un break ou stop que l'on peut voir dans
d'autres langages

si une telle fonction existe en vba , je suis preneur


Bonsoir.
ton code :
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
est correct. Tu récupères bien les 4 caractères de gauche de
"Sheets("suivi").Cells(i, 4)"
Par contre, il manque du code entre If... et End If
Cordialement.
Daniel
"franck B" news:
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous
excel,
pour recuperer les 4 premieres lettres d'une case, et cela de maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour
reperer
les lignes ou il y a les données qui m'interressent, sachant que le
nombre
de
lignes est inconnu) je dois comparer les 4 premiers caractères avec une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne
maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4)
Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou
resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la
tete
sur
cela depuis un moment

merci d'avance














Youky
Le #4809301
Bonsoir,
Dans la macro proposé sur mon message précédent je n'ai pas employé de Do
Loop ni While Wend
ni Do While mais tout simplement le bon vieux For Next
Je commence à 8 et finit à la derniere ligne non vide de la colonne C
Je t'invite à bien relire mon précédent message.
La macro proposée copy les lignes dont les 4ere lettres sont ok en feuille
"recup"
Cette feuille "recup" doit exister ou être créée sur le fichier.
Youky
"franck B" news:
bonsoir,

merci pour vos réponses, je n'ai malheuresement pas la possibilité de
regarder le newsgroup la journée. en effet la boucle do...exit do...while
est
la solution la plus efficace pour sortir à la maniere d'un break.

je vais donc creuser la piste du do...exit do...while et je vous
informerai
de l'avancement

merci à tous


Salut Franck
Pour tester cette macro tu dois créer sur ton fichier une feuille nommée
"recup"
cette feuille est vidée et se remplie de nouveau à chaque macro
Sans savoir ce que tu veux faire exactement ...à tester
Youky
Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*", _
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
Sheets("recup").Cells.ClearContents
For lig = 8 To Sheets("suivi").[C65000].End(xlUp).Row
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4) Then
ligrecup = ligrecup + 1
Sheets("recup").Rows(ligrecup).Value = Sheets("suivi").Rows(lig).Value
End If
Next
If ligrecup = "" Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié" _
& " ou resultats multiples", vbInformation
End If
End Sub
"franck B" news:
merci pour la confirmation concernant la fonction left.

je souhaite maintenant pouvoir arreter la boucle while au moment ou le
second if (celui avec la condition <>
left(Sheets("suivi").Cells(i,4),4)
validée), un peu à la maniere d'un break ou stop que l'on peut voir
dans
d'autres langages

si une telle fonction existe en vba , je suis preneur


Bonsoir.
ton code :
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4)
Then
End If
est correct. Tu récupères bien les 4 caractères de gauche de
"Sheets("suivi").Cells(i, 4)"
Par contre, il manque du code entre If... et End If
Cordialement.
Daniel
"franck B" de
news:
bonsoir tout le monde,

je cherche à utiliser l'equivalent de la fonction GAUCHE en VBA sous
excel,
pour recuperer les 4 premieres lettres d'une case, et cela de
maniere
iterative sur une tres longue colone. Cependant, je ne comprend pas
le
fonctionement de la fonction, tel qu'il est exposé dans l'aide. je
vous
expose donc ma problematique:

sur toute une colone (ou si quelq'un possede un moyen facile pour
reperer
les lignes ou il y a les données qui m'interressent, sachant que le
nombre
de
lignes est inconnu) je dois comparer les 4 premiers caractères avec
une
chaine prédéfinie.

j'ai donc une ebauche de code, mais qui ne fonctione pas, car je ne
maitrise
pas la fonction left:

Private Sub refresh_Click()
'*****Remise à zero du tableau de suivi global des tickets*****
'*****remise à zero des filtres sur le tableau "suivi"*********

Sheets("suivi").Activate
ActiveSheet.Range("C7:R7").AutoFilter field:=1, Criteria1:="=*",
Operator:=xlAnd
Sheets("Paramètres").Cells(11, 2) = Cockpit.Code_projet.Value
i = 8
While Sheets("suivi").Cells(i, 3) <> ""
If Cockpit.Code_projet.Text = Left(Sheets("suivi").Cells(i, 4), 4)
Then
End If
'If Cockpit.Code_projet.Text <> Left(Sheets("suivi").Cells(i, 4), 4)
Then
MsgBox "erreur : pas d'entrées associées au code projet spécifié ou
resultats
multiples"
i = i + 1
Wend

End Sub

si quelqu'un voit une solution, qu'il n'hesite pas, je me creuse la
tete
sur
cela depuis un moment

merci d'avance
















Publicité
Poster une réponse
Anonyme