Résultats pour "tri multi colonne tableau vba"

18'618 résultats pour cette recherche

Bonjour à toutes et tous,

tout d'abords période oblige je tiens à vous souhaiter d’excel'lemment fêtes de fin d'année!

Sinon je reviens vers vous car j'ai une colle que je n'arrive pas à résoudre tout seul.

J'ai une feuille avec un tableau:

- sur mes colonnes j'ai

A/n° B/multi-article C/qt a D/ref a E/qt b F/ref b G/qt c etc...

- sur mes ligne

2/1 Vrai 5 XXXXX 2 YYYYY 8 etc...

3/2 "" 6 YYYYY

4/3 Vrai 3 DDDD 1 UUUU 7 etc...

5/4 "" 1 XXXXX

6/5 "" 1 XXXXX

etc...

Donc ça me donne mon numéro de palette, si oui ou non c'est une palette multi-article puis mes qt de A, mes ref de A etc...

de ça j'aimerais avoir une macro qui:

  • crée une ligne n°palette
  • qui test si vrai
- si vrai elle crée une ligne pour chaque QT et REF qui sont au nombre aléatoire.

- si "" elle renseigne QT et REF A puis passe à la palette suivante.

etc en fonction du nombre de ligne de mon tableau.

Bon je suis dedans donc je pense avoir expliqué ma demande mais pas sur de m’être bien exprimé.

je vous colle donc mon fichier avec ma BASE et en feuil2 mon souhait ça sera certainement plus clair. un dessin vaux mieux que mille mots...

Merci à vous

80bl.xlsx (10.10 Ko)

bonjour

je fait appel a votre savoir car le mien arrive a saturation

je souhaite récupérer les valeur des colonne dont la condition est oui sur plusieurs feuille, jusque la le code fonctionne bien

mon problème est que la lecture ne ce fait pas part colonne mes en ligne ce qui fait si deux valeur successive on oui l'une écrase l'autre .

je souhaiterais que ma macro termine une condition avec de débuter la suivante en ce mettant sous la dernier ligne écrite

merci pour votre aide

mon code est e suivant

Const nomFO = "TEMPORAIRE" ' nom de la feuille Origine 1

Const nomFO2 = "GLOBAL" ' nom de la feuille Origine 1

Const nomFD = "TEST" ' nom de la feuille Destination

Sub TEST_fin()

'Déclaration d'une variable entière pour stocker le nombre de ligne de ton tableau

Dim NombreLigne As Integer

'Enregistrement du nombre de ligne de ton tableau

NombreLigne = InputBox("Nombre de ligne à traiter ?")

'Boucle qui va de 1 au nombre total de ligne

For i = 1 To NombreLigne

'Si la cellule de la ligne i et de la colonne est égale à Oui, alors

If Sheets(nomFO).Cells(i, 25) = "Oui" Then

'Je vais sur la feuille de destination sur la celulle i en collonne et copier la cellulle

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 23).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 24).Value

ElseIf Sheets(nomFO).Cells(i, 37) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO).Cells(i, 35).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO).Cells(i, 36).Value

ElseIf Sheets(nomFO2).Cells(i, 27) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 25).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 26).Value

ElseIf Sheets(nomFO2).Cells(i, 39) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 37).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 38).Value

ElseIf Sheets(nomFO2).Cells(i, 51) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 49).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 50).Value

ElseIf Sheets(nomFO2).Cells(i, 63) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 61).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 62).Value

ElseIf Sheets(nomFO2).Cells(i, 75) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 73).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 74).Value

ElseIf Sheets(nomFO2).Cells(i, 87) = "Oui" Then

Sheets(nomFD).Cells(i, 1).Value = Sheets(nomFO2).Cells(i, 1).Value

Sheets(nomFD).Cells(i, 2).Value = Sheets(nomFO2).Cells(i, 85).Value

Sheets(nomFD).Cells(i, 3).Value = Sheets(nomFO2).Cells(i, 86).Value

'Fin de la condition If

End If

'Fin de la boucle For

Next

Exit Sub

End Sub

Bonjour,

Avec le code si dessous (trouvé sur le NET, Je ne sais plus où, désolé pour l'auteur),

je fais un tri d'un tableau VBA mais toujours de A à Z

Mais sur une des colonne je voudrais faire un tri inversé (de Z à A)

Est-ce que l'un d'entre vous peut m'aider ou m'orienter vers un sujet qui m'aiderai (Rien trouvé dans mes recherche)

Merci d'avance pour votre aide.

Patrick

Option Explicit
Dim tabloBDD
Sub TriBDD2Critère()
With FSourceTaxref
tabloBDD = .Cells(2, 1).Resize(.Cells(Rows.Count, 1).End(xlUp).Row - 1, 4)
End With
TriTabMult tabloBDD, 1, 3, 2
FSourceTaxref.[F1].Resize(UBound(tabloBDD), 4) = tabloBDD
End Sub
Option Compare Text
Sub TriTabMult(Tbl, Optional ColTri1, Optional Coltri2, Optional Coltri3)
 If IsMissing(ColTri1) Then ColTri1 = 1
 Dim clé() As String: ReDim clé(LBound(Tbl) To UBound(Tbl))
 Dim idx() As Long: ReDim idx(LBound(Tbl) To UBound(Tbl))
 Dim b(): ReDim b(LBound(Tbl) To UBound(Tbl), LBound(Tbl, 2) To UBound(Tbl, 2))
 If IsNumeric(Tbl(1, ColTri1)) Or IsDate(Tbl(1, ColTri1)) Then Tri1 = "num"
 If Not IsMissing(Coltri2) Then If IsNumeric(Tbl(1, Coltri2)) Or IsDate(Tbl(1, Coltri2)) Then Tri2 = "num"
 If Not IsMissing(Coltri3) Then If IsNumeric(Tbl(1, Coltri3)) Or IsDate(Tbl(1, Coltri3)) Then Tri2 = "num"

 For i = LBound(Tbl) To UBound(Tbl)
    If Tri1 = "num" Then col1 = Format(Tbl(i, ColTri1), "0000000") Else col1 = Tbl(i, ColTri1)
    If Not IsMissing(Coltri2) Then
      If Tri2 = "num" Then col2 = Format(Tbl(i, Coltri2), "0000000") Else col2 = Tbl(i, Coltri2)
    Else
      col2 = ""
    End If
    If Not IsMissing(Coltri3) Then
      If tri3 = "num" Then col3 = Format(Tbl(i, Coltri3), "0000000") Else col3 = Tbl(i, Coltri3)
    Else
      col3 = ""
    End If
    clé(i) = col1 & "_" & col2 & "_" & col3
    idx(i) = i
 Next i
 Call QuickI(clé(), idx(), LBound(clé), UBound(clé))
 For lig = LBound(clé) To UBound(clé)
   For Col = LBound(Tbl, 2) To UBound(Tbl, 2): b(lig, Col) = Tbl(idx(lig), Col): Next Col
 Next lig
 For lig = LBound(clé) To UBound(clé)
    For Col = LBound(Tbl, 2) To UBound(Tbl, 2): Tbl(lig, Col) = b(lig, Col): Next Col
 Next lig
End Sub

Sub QuickI(clé() As String, index() As Long, gauc, droi) ' Quick sort
  ref = clé((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
    Do While clé(g) < ref: g = g + 1: Loop
    Do While ref < clé(d): d = d - 1: Loop
    If g <= d Then
      temp = clé(g): clé(g) = clé(d): clé(d) = temp
      temp = index(g): index(g) = index(d): index(d) = temp
      g = g + 1: d = d - 1
    End If
  Loop While g <= d
  If g < droi Then Call QuickI(clé, index, g, droi)
  If gauc < d Then Call QuickI(clé, index, gauc, d)
End Sub

Bonjour,

Je bloque un peu sur l'affichage et la modification de valeur via un formulaire dans un userform.

Donc avoir un formulaire qui permet de cocher plusieurs valeur et de modifier toutes les références en même temps selon une valeur choisi.

Pour le userform, j'ai besoin juste d'un combobox qui liste des critères selon une colonne. Et une Listebox qui renvoi un tableau.

Pour toute valeurs sélectionné, inscrire la valeur sélectionné dans la combobox.

Je vous join un exemple ça sera plus simple.

Merci d'avance pour votre aide

135formulaire.xlsm (47.83 Ko)

Bonjour à tous,

Je cherche un moyen de trouver une ou plusieurs valeurs selon 2 critères.

Voici un exemple de ce que je voudrais réaliser. J'ai fais plusieurs tentatives avec INDEX et PETITE VALEUR mais je n'ai pas la bonne logique je pense.

Merci de votre aide.

bonjour à tous,

j'ai un problème de formule excel que je ne parviens pas à resoudre :

soit un tableau de colonnes A à AC

colonnes de critère :

  • C et G pour le critère éliminatoire "terrasse"
  • O et U pour les codes communs à rechercher

C1 etant une caractéristique liée à O1 et G1 etant la meme caracteristique liée à U1

idem à chaque ligne

la formule à trouver serait :

je voudrais que sur une nouvelle feuille de calcul, excel recherche O1 et/ou U1 dans la colonne O et U et si il existe une correspondance

si oui, alors excel affiche la correspondance trouvé dans O ou U et l'affiche de cette facon :

"O1 vers U1 puis vers U3 puis vers U12...

U1 vers O1

U3 vers O1

U12 vers O1"

dans le cas ou il trouve une corespondance en ligne 3 et 12

ou

"U1 vers O1 puis vers O3 puis vers O12...

O1 vers U1

O3 vers U1

O12 vers U1"

les "..." étant la quantité de correspondances trouvées

les lignes 3 et 12 étant les variables des correspondances trouvées si il n'y en à que 2 supplémentaires à la ligne 1

si aucune correspondance n'est trouvée alors excel affichera simplement

"O1 vers U1

U1 vers O1"

ou

"U1 vers O1

O1 vers U1"

et si la celulle C1 ou G1 ou n'importe quelle autre correspondance contient "terrasse"

excel n'affichera pas

xx vers xx

exemple :

si C1 contient "terrasse" et C3 contient "terrasse" et G1 ne contient pas "terrasse"

alors excel affice simplement

"U1 vers O1 puis vers O3 puis vers O12

U12 vers O1"

merci pour ce joyeux casse tête qui occupe mes nuits depuis longtemps..

Bonjour,

J'utilise une textbox1 pour filtrer les données d'une listbox.

Après avoir coché des lignes de personnes domiciliées à Amiens je voudrais pouvoir continuer à cocher d'autres personnes domiciliées dans d'autres villes en utilisant de nouveau le filtre de la textbox1.

Mon souci est de conserver les lignes cochées dans la listbox alors que je poursuis mon filtrage sur d'autres villes.

Merci d'avance pour votre aide.

Bonjour à tous,

J'essaie d'effectuer un RECHERCHEV ou plutôt SOMMEPROD, avec 3 critères à travers différentes feuilles.

J'ai réussi à faire un SOMMEPROD qui fonctionne sur une même feuille mais je n'y arrive pas à travers plusieurs feuilles.

En faisant des recherches j'ai compris que le SOMMEPROD ne fonctionne pas facilement avec plusieurs feuilles.

Est-ce que quelqu'un aurait une astuce, s'il vous plait ?

J'ai fait une feuille Exemple avec ce que j'aimerais faire.

Pour différents volumes prismatiques, un code est attribué dans la Feuille 1.

Dans la Feuille 2, j'ai une liste avec différents volumes (épaisseur, largeur, longueur) avec les mêmes que dans Feuille 1 et d'autres dans le désordre. Je souhaite faire une recherche multicritère (épaisseur, largeur, longueur) pour retrouver le code correspondant mais apparemment ça ne fonctionne pas.

Est-ce que quelqu'un a une idée ?

Cordialement

68classeur1.xlsx (11.78 Ko)

bonjour

je souhaite afficher le contenu de plusieurs cellule par rapport à 2 choix dans des listes déroulantes. le tout forme un tableau dans lequel j'arrive à afficher le contenu d'une cellule en fonction de ces choix mais j'aimerais qu'il m'affiche aussi les contenus des cellule de la / des lignes précédentes.

je sais faire la recherche (voir fichier) pour une coordonnées mais il ne m'affiche que la cellule ainsi sélectionnée.

je pense que c'est plus clair en voyant le tableau joint.

Bonjour,

J'ai un fichier composé comme suit :

  • Colonne A : numéro de type 2015.12.1234
    Colonne B : NOM
    Colonne C : Prénom
    D'autres colonnes qui ne sont pas utiles dans mon cas

Et ça pour chaque année 2013 à 2015 (bientôt 2016), donc énormément de données

Selon les cas quand une personne est connue on lui réatribue le même numéro et dans d'autres cas non, ce qui signifie que une même personne peut avoir plusieurs numéros sur un ou plusieurs fichiers.

Dans le cas ou on réattribue un ancien numéro, nous faisons en amont une recherche du dit numéro afin de voir si celui-ci existe déjà et dans le cas contraire on le crée.

Jusqu’à maintenant nous recherchions dans chaque fichier (donc 3 fois) par le nom sur la colonne B et nous récupérions le numéro en colonne A, trouvant cela fort contraignant j'ai créé un fichier général qui regroupe toutes les colonnes ABC des fichiers via des copiés/collés avec liaisons (Les fichiers étant continuellement mis à jour), fichier qui est une vrai usine a gaz... (Met plus de 5 min a s'ouvrir et a s'actualiser) car les fichiers "sources" contiennent chacun plus de 2000 numéros.

Ma question est existe t-il une formule qui permet de faire une recherche sur les 3 (bientôt 4) sources qui sortirait les résultats comme ça après une recherche sur le nom :

NUMERO NOM PRENOM

NUMERO NOM PRENOM

NUMERO NOM PRENOM

Afin de voir tout les numéros pour une même personne

Bonjour,

L'idée est de récupérer la même cellule dans tous les onglets dans tous les dossiers.

Le chemin de dossier est E:\DOC SERVICES\Equipe 1\Mme/Mr 001\2013\feuilles frais 2013.xlsx puis dans l'onglet janvier $J$39

Vous l'avez compris il y a les douze mois, multiplié par le nombre salariés.

Yvouille m'a déjà pas mal dépatouillé lors de précédente demande de ce type...

Si quelqu'un ce sens, il ne faut pas hésiter. J'ai laissé dans le fichier les précédente macro de Yvouille que je n'arrive pas à adapter à ce nouveau besoin.

Je pensai faire avec la fonction indirect mais avec les classeurs fermés c'est proscrit... J'ai cependant structuré le doc pour que le chemin du dossier se renseigne avec les infos dans les colonnes A et B et la ligne 4.

Cordialement,

Leakim

61kms-2013.xlsm (39.79 Ko)

Bonjour le forum!

Cela fait un bail que je ne vous ai pas sollicités... mais me voici à nouveau face à un problème que je ne sais pas régler.

Un petit fichier valant mieux qu'un long discours....

Le problème est expliqué dans l'onglet comptage avec, en dur, les résultats espérés.

Merci d'avance à ceux qui me consacreront un peu de leur précieux temps!

Fabienne

Bonjour,

existe-t-il une solution pour effectuer des recherche de valeurs selon 2 critères :

  • critère 1, dans la ligne 1 du tableau
  • critère 2, dans la colonne 1 du tableau.

Mon problème avec rechercheV ou rechercheH est qu'il faut indiquer soit le numéro de la ligne, soit le numéro de la colonne.

Comment passer outre ces numéro (ligne ou colonne) ?

Merci d'avance de votre aide si vous avez une idée.

Voici un fichier pour illustrer ma question :

Bonjour à tous,

Je cherche à faire un tri alphabétique automatique sur plusieurs colonne d'une même feuille, chaque colonne étant indépendante des autres.

J'arrive à le faire sur une colonne, mais je n'arrive pas à élargir sur les 4.

Je vous joint le fichier test, sans macro, si quelqu'un à envie d'y jeter un œil.

Cordialement

41classeur-test.xlsm (11.08 Ko)

Bonjour à tous, je m'échine à trouver la bonne macro pour réaliser une chose qu'Excel réalise déjà via mes petits doigts.

La macro à réaliser:

Je sélection une série de lignes.

Je clique sur trier

je tri colonne A suivant une liste de tri "-" puis "pm",

puis deuxième critère colonne B "du plus petit au plus grand"

Envoyé!

Puis je recommance, je sélection une série de lignes (mais une quantité différente) et je trie.

Je souhaiterai avoir une macro de tri selon deux critères que je lance sur ma 000sélection de lignes en cours.

Impossible de trouver ce que je cherche. D'où cet appel à l'aide pour la rédaction de cette mini macro!

Merci pour votre aide! Bonne soirée!

Bonjour à tous,

J'ai un fichier sur lequel je travaille qui me pose pas mal de problèmes.

Je travaille avec deux feuilles : une feuille de données, et une feuille "Classes". Sur la feuille donnée, j'ai des numéro d'articles, associés chacun avec les magasins dans lesquels ils sont utilisés. Un même article peut être utilisé dans plusieurs magasins différents.

J'aimerai associer à chaque couple article_magasin une classe qui est pré-définie à l'avance dans la feuille "Classes".

Seulement certaines classes sont prioritaires devant d'autres, donc si un article est utilisé dans un magasin de la classe 1 et dans un magasin de la classe 2, alors on lui attribue la classe 1 puisqu'elle est prioritaire sur la classe 2.

Cette priorité est donnée par la colonne "Grade" de la feuille "Classes". Le grade le plus important est le 1, puis 2 , ...

Un exemple de traitement :

Spoiler

L' article n° 111 est utilisé dans les magasin 811 ; 812 ; 822 et 831.

La répartition des classes se fait comme suit :

Magasin :

n°811 | Classe 1 | Grade 1

n°812 | Classe 1 | Grade 1

n°813 | Classe 1 | Grade 1

n°821 | Classe 2 | Grade 2

n°822 | Classe 2 | Grade 2

n°823 | Classe 2 | Grade 2

n°824 | Classe 2 | Grade 2

n°831 | Classe 3 | Grade 3

Les magasins 811 et 812 appartiennent tous deux à la classe 1, le 822 à la classe 2, et le 831 à la classe 3.

Comme la classe 1 a le grade le plus important, alors à chaque fois que l'article n°111 apparaîtra dans la liste de données il lui sera attribué la classe 1.

J'ai réussi à faire un code en dur à base de For et If, qui vérifient les différentes variables que je viens de vous donner et attribue correctement les classes.

Cependant si une classe est modifiée (changement de magasin, de grade, ...), ou même une nouvelle classe est ajoutée, alors dans ce cas je dois refaire tout mon code.

J'aimerai avoir une macro qui s'adapte, en utilisant donc les classes définies dans la feuille "Classes".

C'est sur ce point que je demande votre aide, puisque je tourne en rond depuis plusieurs heures...

Je met un fichier test en pièce jointe.

Merci par avance pour votre aide !

Très bonne journée,

Vikto.

6simplifie.xlsm (26.05 Ko)

Bonjour,

Je dispose d'un catalogue départemental de registres de notaires.

Ville | Nom | Prénom | DateMin | DateMax | Début | Fin

Dans chaque ville il peut y avoir plusieurs notaires, notamment le père et le fils (même nom, prénom différent)

Chaque notaire a créé plusieurs registres distingués par la DateMin et la DateMax

Je souhaite obtenir sur la 1° ligne de chaque nouveau notaire, le Début

=MIN(D2:D7)

et la Fin

=MAX(D2:D7)

de la plage de tous ses registres.

Comme le catalogue complet comporte plus de 30.000 lignes, je voudrais traiter cela par macro.

Merci de vos conseils.


Oups, erreur de copier coller

Je souhaite obtenir sur la 1° ligne de chaque nouveau notaire, le Début

=MIN(D2:D7)

et la Fin

=MAX(E2:E7)

de la plage de tous ses registres.

21tri-not.xlsm (8.77 Ko)

Bonjour,

Je souhaite automatiser un "multi multi tri" sur un tableau excel.

Pour que ce soit plus explicite, je joins le fichier avec le tableau matrice - onglet 1 et ce que je veux obtenir - onglet 2

Aujourd'hui, je suis obligé de faire plusieurs tableaux croisés dynamiques pour y arriver ce qui entraîne pas mal d'opérations manuelles, sachant qu'à chaque fois nous sommes susceptibles de rajouter des lignes de magasins.

Merci de vos conseils,

Bonjour,

Je me permet de posté un nouveau sujet car j'ai un soucis.

J'ai un tableau principal ou j'ai un recap des bonus et malus de chaque personne

et j'aimerai pouvoir faire un autre tableau ou je puis-je faire un dispatche entre les bonus et malus de chaque un.

je connait la fonction nb.si pour calculé le nombre total qu'on eu de bonus et malus mais je n'arrive pas a dissocié les bonus et malus pour chaque un.

Si quelqu'un peux me éclairé sa m'aiderai beaucoup.

Si joint fichier type.

Ps : les deux tableau peuvent être dans deux pages différentes a la fin.

26classeur1.xlsx (13.36 Ko)

Bonjour, je cherche sous Excel (2010 ici) à trier plusieurs colonnes.

J'ai donc 2 listes sur 2 colonnes, non triées, contenant du texte, remplacé ici par des chiffres pour la facilité sous le nom "Original".

Si j'utilise la fonction de tri automatique d'Excel, peu importe comment, il me sort le resultat visible sous "Tri a la con", c'est à dire trier indépendamment chaque colonne, ce que je ne souhaite pas.

Ce qui m'intéresserait, serait de trouver une méthode, pour arriver au "Tri voulu" (les cellules noires étant juste là pour montrer qu'elles sont bien vides), trier les 2 colonnes en respectant l'ordre du tout réuni, et si possible même, en le faisant sur 4 colonnes (contenant toutes uniquement du texte).

Merci de votre aide,

Kanako.

Recherches récentes

envoi pdf emailmulti criterestockespionrankingabreviationsabreviationpmucout transportchronomsg boxmodifier filtressinonlundi ferieuserformgmaomariolocativemailprotection