Importer textes cellules sans cellules vides

Hello à la communauté,

Petit souci, serait-il possible d'importer toute les cellule pleine de l'onglet "Com1&Col" de A2 jusque A39 et en même temps de A48 à A60.

Les importer dans les cellules de A2 à A52 de l'onglet "Retour", au cas ou toutes les marchandises retournerait (peu probable...), mais si il y a que dix articles, par EX. ou comme sur le fichier un peu plus, que ceux si soit l'un à la suite des autres sans cellule vide au dessus ou dessous.

Encore une fois, merci de l'aide apportée !

Vincent

14comptaok-2.xlsx (110.70 Ko)

Edit : J'oublie de préciser que le contenu des cellules de A40 à A47 ne doivent pas être importée, ou recopier... ;-)

Bonjour

Vous devez conserver les listes de validation dans la feuille retour après la copie ?

J'oublie de préciser que le contenu des cellules de A40 à A47 ne doivent pas être importée, ou recopier... ;-)

Hum.... si le nombre de lignes est figé donc 8 lignes cela peut se faire. Est-ce le cas ou cela peut varier ?

Bonjour et merci Dan,

En théorie oui sa peux varier cependant pas de souci ce que j'ai prévu peut aller ailleurs. Donc sa restera figé.

Le but est de faire d'une commande et son ajout en une seule commande via l'onglet retour. Et si possible de ne pas faire de doublon.

Par exemple si il y à 1 fut de jup dans la commande et 1 dans ajout commande, de faire une ligne fut jup = 2 dans onglet Retour.

Et si possible pas en VBA ;-)

merci pour ton attention !

Vincent

PS: "Vous devez conserver les listes de validation dans la feuille retour après la copie ?" Que voulez-vous dire par là ?

En théorie oui sa peux varier cependant pas de souci ce que j'ai prévu peut aller ailleurs.

Que voulez-vous dire par "ailleurs"

Le but est de faire d'une commande et son ajout en une seule commande via l'onglet retour. Et si possible de ne pas faire de doublon.
Par exemple si il y à 1 fut de jup dans la commande et 1 dans ajout commande, de faire une ligne fut jup = 2 dans onglet Retour.

En gros si doublons il faut retraiter le tout en ajoutant une quantité en colonne B dans la feuille retour ?

Et si possible pas en VBA ;-)

Là je ne vois pas comment vous allez faire cela... c'est presque obligatoire surtout que vous supprimez des lignes

PS: "Vous devez conserver les listes de validation dans la feuille retour après la copie ?" Que voulez-vous dire par là ?

Ben je parle des listes déroulantes dites "listes de validation" que vous avez en colonne A de la feuille Com1&Colr.

Re,

Dans le fichier joint

Avec la ligne C, il y à une formule SOMMEPROD qui fonctionne bien, un petit merci à François au passage, cela n'importe pas les noms des articles et les comptabilises bien en colonne C. Le hic ce sont les article qui ne sont pas repris dans la commande principale, tel que l'exemple en orange, je n'arrive pas à trouver de solution pour l'importer et le (les) placer en dessous de la commande principale, ici en dessous de frigo.

J'entends par ailleurs c'est que les infos repris dans les cellules A40 à A44 ne sont pas pertinente, par contre les ligne oui. Concernant le listes déroulantes dites "listes de validation" en colonne A de la feuille Com1&Colr, oui j'aimerais qu'ils restent après la recopie.

SRY pour mes explication pas toujours claire , patience rime souvent avec souffrance, j''espère ne pas trop vous faire de mal ;-), encore merci.

Vincent

Concernant le listes déroulantes dites "listes de validation" en colonne A de la feuille Com1&Colr, oui j'aimerais qu'ils restent après la recopie.

Pas sûr que vous avez compris. Ma question portait sur le fait d'avoir les listes de validation dans la feuille Retour

Sinon si je comprends bien ce que vous voulez
- On copie les infos de la feuille COM vers la feuille Retour Colonne A
- Si doublon on doit supprimer la ligne et augmenter la quantité en colonne C de la feuille retour
- A la fin il vous faut aussi que les colonnes D à N soient complétées des formules en fonction des lignes présentes en colonne A

Vous confirmez ?

Dan vous me faite peur, j'ai l'impression que vous lisez mes pensées... :-) Je confirme !

Pour les validation dans la feuille retour, vous parlez d'une sorte de sauvegarde si je réutilise la feuille "com1&Colr" pour une autre commande ? Si c'est bien cela, alors non. Normalement il y aura un fichier par années, que je créerais à l'avance. Ou peut-être via un bouton, crée fichier année suivante, je penche encore sur le sujet.

Bien à Vous et merci.

Vincent

A quoi vous sert la colonne Retour dans cette feuille retour ?
Est-il pensable de ne pas mettre cette colonne retour en colonne B mais ailleurs

Le but de la feuille de retour est d’éviter de réencoder la commande. Une fois la fête finie, lors des décomptes il suffira de mettre ce qui est retourner non entamée aux fournisseurs. Une fois rempli cela permettra un contrôle sur la facture final. Cela nous indiquera aussi la commande future en fonction de ces ventes et d’autres paramètres tel que le temps qu’il faisait, le nombres d’élèves…

Je m’égare de la question, la colonne retour est le nombre de retour des marchandises non entamés que nous reprend les fournisseurs.

Bien à vous

Pour faire plus simple je vous propose de consacrer dans cette feuille RETOUR
- Colonne A : les articles
- Colonne B : la quantité commandée telle que mentionnée en feuille Com en colonne B
- Colonne C : Retour

En gros j'inverse la colonne B et C de la feuille Retour.

Bon cela ?

Malheureusement non ! Vous oublier le principale, le bouton de la machine à expresso ! :-))

Oui cela semble parfait ! merci à vous !

Vincent

Malheureusement non ! Vous oublier le principale, le bouton de la machine à expresso ! :-))

Lol !...

Ok si je vous explique le processus à suivre pour le faire par vous-même ?

Vendu, ainsi je comprendrai mieux ce que je fais, ne vous formalisé si par moment je répond pas rapidement, j'ai un horaire très atypique et suis souvent appelé sur site, et surtout 5 enfants qui croient qu'un papa est soit une CB, soit un chauffeur de taxi :-)))

Merci beaucoup Dan !

surtout 5 enfants qui croient qu'un papa est soit une CB, soit un chauffeur de taxi :-)))

Lol ! ah ben oui... pendu à un clou en quelque sorte


Voici les modifications à faire. suivez bien pas à pas sans sauter une ligne :

1. Allez dans la feuille Retour et en C2, remplacez Quant par Retour
2. Supprimez la formule Sommeprod en colonne C (on en a plus besoin)
3. Faites un click droite sur le nom de l'onglet COM
4. choisissez l'option "Visualiser le code". Cela vous amène dans l'éditeur VBA (car oui, on doit passer par code VBA)
5. dans le menu, choisissez "Insertion" --> "Module". Cela vous met à droite une fenetre vide
6. Dans la fenêtre, collez le code ci-dessous

Option Explicit
Sub Importer()
Dim dlg As Integer
Dim rng As Range
Dim lig As Byte
Dim i As Integer

Sheets("Retour").Range("A:B").ClearContents 'effacer colonne A et B dans la feuille Retour

With ActiveSheet
    dlg = .Range("A" & Rows.Count).End(xlUp).Row
    Set rng = .Range("A1:B" & dlg)
End With
rng.Copy

With Sheets("Retour")

    .Range("A1").PasteSpecial Paste:=xlPasteValues

    On Error Resume Next
    Set rng = .Range("A1:A" & dlg).SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0

    If Not rng Is Nothing Then
        rng.EntireRow.Delete 'Shift:=xlUp
    End If

    dlg = .Range("A" & Rows.Count).End(xlUp).Row

    Set rng = .Range("A2:A" & dlg)
    On Error Resume Next
    lig = rng.Find("*Fournisseur*", LookIn:=xlValues, lookat:=xlWhole).Row
    If lig = 0 Then Exit Sub

    .Range("A" & lig & ":B" & lig + 4).Delete Shift:=xlUp

    Dim lg As Integer

    For i = dlg To lig Step -1
        If .Range("A" & i) = "" Or .Range("A" & i) Like "*Fournisseur*" Then
            .Range("A" & i).EntireRow.Delete
        Else
            On Error Resume Next
            lg = rng.Find(.Range("A" & i).Value, LookIn:=xlValues, lookat:=xlWhole).Row

            If lg > 0 Then
                .Range("B" & lg) = .Range("B" & i) + .Range("B" & lg)
                .Range("A" & i).EntireRow.Delete
                lg = 0
            End If
        End If
    Next i

    dlg = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("E2:N2").AutoFill Destination:=.Range("E2:N" & dlg), Type:=xlFillDefault
End With
End Sub

7. Enregistrez votre fichier en choisissant l'extension XLSM (cette extension est nécessaire pour utiiiser les macros)

Une fois terminé, testez comme ceci :
1. Positionnez-vous sur la feuille COM (TRES important !!!)
2. Allez dans le menu excel AFFICHAGE --> cliquez sur l'icone MACROS (tout à droite)
3. Sélectionnez le code IMPORTER
4. cliquez sur le bouton "Exécuter"

Il vous reste à aller voir le résultat dans la feuille retour et surtout me faire vos commentaires sur ce qui vous convient ou les améliorations souhaitées
NB :
- Pour ma part, je pense que mettre un bouton sur votre feuille COM, serait utile. cela vous obligerait à bien partir de la feuille COM
- La proposition suppose que vous avez toujours bien les mêmes infos depuis A40 à A47 avec A42, A45 et A46 vides

Si tout ok et terminé pensez à

Cordialement

Voilà je viens de suivre votre procédure à, j'espère, la lettre.

Le comptage se fait bien excepter dans l'exemple ci joint L'article citronnade. Sry...

Pour le reste Impec !

Concernant le bouton, vous avez raison, je n'avais pas capté que le but de celui-ci était pour l'exécution du script.

Encore une fois Merci !

4comptaokvba.xlsm (117.95 Ko)

Bonjour,

Parfait si cela fonctionne

Pourquoi avez-vous reposté un fichier ? Je dois regarder autre chose ?

Si terminé comme écrit dans mon précédent message pensez à --->

Crdlt

Bonjour et merci,

Oui il y à un petit souci, visible via le fichier joint. L'exécution du script fonctionne bien pour tout, excepté qu'il n'importe pas les articles qui sont dans Com Fournisseur 1 Ajout, mais pas dans Com 1 Fournisseur.

Bien à vous

Vincent

Bonjour

Oui il y à un petit souci, visible via le fichier joint. L'exécution du script fonctionne bien pour tout, excepté qu'il n'importe pas les articles qui sont dans Com Fournisseur 1 Ajout, mais pas dans Com 1 Fournisseur.

Exact je n'avais pas capté que des articles placés dans "Com Fournisseur 1 Ajout" pouvaient ne pas se trouver dans la plage "com 1 fournisseur".
Dans le code, rajoutez cette ligne juste au dessus de la ligne --> Dim lg As Integer

Set rng = .Range("A2:A" & lig) 'définir la plage de recherche pour articles ajoutés dans Com1-Fournisseur

Cette ligne permet de définir la plage entre la cellule A2 et la cellule A40 (variable "lig") dans laquelle on trouve le mot Fournisseur. Elle servira dans la suite du code pour vérifier les articles ajoutés en Com 1 fournisseur ajout

J'espère que vous comprenez mes explications

Crdlt

PERFECT !

Voilà avec l'ajout du code ça fonctionne nickel !

Un tout grand merci à vous Dan !

Je propose d'attendre 24H00 avant de mettre en résolu ce post, le temps de bien tout tester, ça vous va ?

Belle journée à vous

Re

Ok faites quelques tests avant la cloture, c'est mieux

Crdlt

Rechercher des sujets similaires à "importer textes vides"