• Initiateur de la discussion Initiateur de la discussion br44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

br44

XLDnaute Impliqué
Bonjour le forum

j'ai une petites question sur la condition "If" . Voilà peut-on grouper plusieur critère sur la même condition ? Je m'explique je voudrais grouper deux code clients sur la même ligne .

Exemple:

If Range("G3").Value= "C01"Then comment rajouter le Code: "C03" avant le "Then "

En esperant avoir ètè claire dans ma demande et vous remerciant par avance je vous dis à plus sur se fil

BR44
 
Re : Question sur "If"

re: Bonjour le forum,Bonjour Pierrejean

Merci à toi pour avoir répondu si vite et désoler pour le temps mis à te rèpondre mais je viens de prendre connaissance du message .

Bon j'ai tester est le résultat est négatif pour ma tentative mais l'info est bonne .

j'ai donc une nouvelle question .

Comment ècrire la procédure suivante :

j'ai dix code clients( de "C01à C010") qui se copie sur deux feuilles "Récap" ("1 et 2")différantes pour cause d'addresse de facturation indentique .
est_il possible de s'èparer les codes clients conserner de l'ensemble sans doublons de copies ?

Exemple :

Tout les codes clients en "Récap1" SAUF les codes "C01 et C04" Puis les codes "C03 et C06" qui vont en "Récap2"?

Ci-joint ma procèdure pour la "Récap2"

If Range("G3").Value = "C01" Then
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
.Range("A65536").End(xlUp)
End If
If Range("G3").Value = "C04" Then
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
.Range("A65536").End(xlUp).Offset(1, 0)
Sheets("Facture").Range("1:50").Copy
With Sheets("Récap2").Range("A65536").End(xlUp).Offset(1, 0)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
End If
If Range("G3").Value = "C03" Then
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
.Range("A65536").End(xlUp)
End If
If Range("G3").Value = "C06" Then
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
.Range("A65536").End(xlUp).Offset(1, 0)
Sheets("Facture").Range("1:50").Copy
With Sheets("Récap2").Range("A65536").End(xlUp).Offset(1, 0)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
End If
Application.CutCopyMode = False '

End Sub

En espèrant que cela t'aide pour le reste .

Bon je te dis à plus sur se fil sans oublier de te remercier par avances pour toutes rèponses où conseils .
A bientôt
br44
 
Re : Question sur "If"

bonsoir br44

je ne vois rien qui empeche de mettre sous la forme

If Range("G3").Value= "C01" Or Range("G3").Value="C03" Then

pour ameliorer ton code

tu dis que c'est negatif mais sur quelle ligne y-a-t-il blocage ?

ne peux-tu mettre un fichier exemple sans données confidentielles

ce serait infiniment plus pratique !!!

A +
 
Re : Question sur "If"

re: rebonjour à tous et à Pierrejean

En réponse à ta demande je te joint mon fichier pour info :

la feuille("Détail") se remplie par un userfrom qui se commande par la touche F5 de visual basique

Oui pour répondre a t'as question j'ai essayer :

If Range("G3").Value="C01"orRange("G3").Value="C04" Then
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
.Range("A65536").End(xlUp)
Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
.Range("A65536").End(xlUp).Offset(1, 0)
Sheets("Facture").Range("1:50").Copy
With Sheets("Récap2").Range("A65536").End(xlUp).Offset( 1, 0)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
End If

le rèsultat de ceci est que j'ai deux copies de la feuille("Détail") avec le premier code +la feuille("Facture") et ce n'est pas ce que je veux mais 1 exemplaire de la feuille("Détail") Avec le code "C01" et 1 exmplaire des feuilles Avec le Code 'C04" à la suite d'où la rèponse que je t'es faite

Maitenant si tu as une solution je suis prenneur .

A noter :

La partie pour la "Récap1" n'est pas rentré tu as répondu si vite que je n'ais pas eu le temps de la rentrée je m'en excuse par avance.

Bon sur ce je te laisse est te dis à plus sur se fil .Si tu as des questions n'hésite pas et encore merci pour le coup de main
A bientôt Br44
 

Pièces jointes

Re : Question sur "If"

bonjour br44

j'ais testé ceci qui fonctionne

maintenant est-ce qu'il s'agit bien de ce que tu souhaites ???

Code:
Private Sub CommandButton2_Click() 'bouton "Enregistrer la fiche"
Dim i As Integer
Dim y As Integer
 
   If Range("G3").Value = "C01" Or Range("G3").Value = "C03" Then
    Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
    .Range("A65536").End(xlUp)
  End If
   If Range("G3").Value = "C04" Or Range("G3").Value = "C06" Then
    Sheets("Détail").Range("A1:G29").Copy Destination:=Sheets("Récap2") _
    .Range("A65536").End(xlUp).Offset(1, 0)
    Sheets("Facture").Range("1:50").Copy Destination:=Sheets("Récap2") _
    .Range("A65536").End(xlUp).Offset(1, 0)
  End If
  Application.CutCopyMode = False
 
Re : Question sur "If"

re: Bonjour le forum ,Bonjour Pierrejean

Tout D'abors je m'excuse de rèpondre aussi tard à ton dernier message que j'ai lu hier matin.

j'ai eu juste le temps de tester un peu tas procèdure dans la quelle j'ai fai quelques modifs au niveau de l'odre des copies .

Ce matin j'ai prèparè un fichier complet qui fonctionne que tu trouveras ci-Joint .

Tu as les résultat dans les deux feuilles "récap".

1°) Pourrais-tu voir si il y a moyen de simplifier car la ce n'est qu'un extrait de mon fichier pricipal est vu le nombres de clients (Une centaine) je ne me vois pas le faire pour tout les clients celas risque d'aloudire inutilemenrt le fichier,si cela est possible biensure?

2°) Comme tu pourras le constater j'ai un problème de hauteur de lignes sur les copies de la feuilles ("Détail"). j'ai rèussi à les mettre au formats pour la première copie de chaque "Récap" . peut -on modifier la ligne suivante pour que la hauteur de lignes se face à chaques nouvelle copie ?:
With Sheets("Récap1") OU 2
y= 1
For i= 2 To.Range("A1:G29").Rows.Count
.Rows(i).RowHeight=Sheets("Détail").Rows(y).RowHeight
Next
End With
Cette procédure fonctionne pour première copie de chaque "Récap"

Bon en te remerciant par avance pour le coup de main et en espèrants que cela ne te prenne pas trop de ton temps je te dis à bientôt sur se fil
br44
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
904
Retour