Copier sous condition

Bonjour à tous,

Je souhaiterais créer une macro me permettant de copier la valeur d'une cellule dans d'autres cellules et la dupliquer sous condition.

Dans le fichier ci-joint, je souhaiterais copier la valeur « categorie1 » de la cellule A2 et la dupliquer 2 fois dans les cellules E4 et E5,

Ensuite copier la valeur « categorie2 » de la cellule A7 et la dupliquer 3 fois dans les cellules E9, E10, E11.

etc.....

La duplication se fait selon le nombre de produits dans 2éme colonne.

Mon objectif est d'avoir enfin un fichier structuré pour l'exporter en format CSV.

Je vous remercie par avance pour votre aide.

17dataexemple.xls (6.50 Ko)

Bonjour

A tester

22dataexemple.xlsm (15.95 Ko)

Dis-moi

Bye

Bonjour,

Merci, cela fonctionnait parfaitement dans l'exemple de fichier ci-joint, sauf que mon vrai document est complètement différent.

1- Les valeurs que je souhaiterais déplacer (couper/coller) de la colonne (A) ne contenant pas que le mot Categorie, mais sont variées ( des mots, des chiffres, etc.).

2- De supprimer les titres de colonnes (produit, description, local, etc.) de tout le fichier.

3 - Le nombre de lignes pourrait y arriver à des milliers. La macro devrait parcourir tout le fichier, et ce indépendamment du volume de fichier.

C'est ma faute, excuses .

Ci-joint un autre fichier qui est une copie conforme de mon document réel, afin d'en avoir une idée plus claire sur mon besoin.

Je souhaiterais que la macro supprime d'abord les lignes de titres (No, produit, etc.), ensuite déplacer la valeur de la cellule A vers la colonne (G) et la dupliquer selon le nombre de produits, et enfin supprimer les lignes vides

Je vous remercie beaucoup de votre aide.

Bonjour

dans le cas de ton nouveau fichier, que met-on dans la colonne catégorie , je suppose Catégorie blabla.

Mais que fait-on du chiffre 1 qui traîne en colonne 1 lui aussi ?? On le laisse , on le retire ??

Merci

Sinon , c'est presque prêt

A+

Bonjour,

Oui dans la colonne (G) on doit mettre (couper/coller) les valeurs des cellules A ( catégorie bla bla....),

Dans (NO) on inscrit le numéro de produit, c'est un numéro séquentiel, mais dans mon fichier beaucoup de vides, on ne l’inscrit pas tout le temps. Ce n'est pas très important, on peut l'enlever.

Merci pour l'aide.

Bonjour

Voici donc le fichier modifié

(macro copier)

Dis-moi

A+

Bonjour,

Je vous remercie beaucoup. J’ai testé la Macro sur mon vrai document et le résultat est impeccable.

Puis-je demander autre chose :

En fait mon objectif final est d’exporter les données en cSv pour les importer dans la nouvelle base de données.

Serait-il possible de rajouter les opérations suivantes dans la macro?

  • Supprimer les colonnes A + B + F;
  • Concaténer le contenu des deux colonnes (C + D) dans une seule. Les deux valeurs séparées par un espace;
  • Convertir le contenu de la colonne (E) en format Texte;
  • Sélectionner toutes les données et lancer une fenêtre d’exportation. Toutes les colonnes devraient avoir le double quotes dans le fichier output.
Je pourrais faire tout ceci manuellement, mais les inclure dans la même Macro serait génial.

Je vous remercie beaucoup pour votre aide.

Bonjour

Vois si cela te convient.

J'appelle le fichier "produits.csv" enregistré sous le même répertoire que ton fichier .Xlsm

15dataexemple-v3.xlsm (16.60 Ko)

Dis-moi

A+

Bonjour,

Merci infiniment, le fichier CSV est parfait . Juste une petite rectification, si ce n’est pas très compliqué, l’ajout des guillemets (double quotes) sur les valeurs de chacune des 3 colonnes. L’absence de guillemets me pose un problème lors de l’importation dans notre BD. Je vous remercie encore une fois pour l’aide.

Bonsoir

Tu remplaces la procédure

enreg_csv

par celle-ci :

Pas très élégant , mais cela fonctionne

Sub enreg_csv()
Dim ecri As String
    dlig = Sheets("produits").Range("A" & Rows.Count).End(xlUp).Row
    chemin = ActiveWorkbook.Path & "\"
Open chemin & "produits.csv" For Output As #1
For i = 1 To dlig
    Columns("D:D").Activate
    ActiveCell.FormulaR1C1 = "=""""""""&RC1&"""""""""
    Range("D1").Select
    Selection.Copy
    Range("D2:D6").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Columns("E:E").Activate
    ActiveCell.FormulaR1C1 = "=""""""""&RC2&"""""""""
    Range("E1").Select
    Selection.Copy
    Range("E2:E6").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Columns("F:F").Activate
    ActiveCell.FormulaR1C1 = "=""""""""&RC3&"""""""""
    Range("F1").Select
    Selection.Copy
    Range("F2:F6").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

    ecri = Cells(i, 4).Value & ";" & Cells(i, 5).Value & ";" & Cells(i, 6).Value
    Print #1, ecri
Next
Close
Range("D1:F" & dlig).ClearContents
MsgBox " Fichier csv créé"
End Sub

Bonne soirée

A+

Bonsoir,

Les 6 premières lignes sont traitées correctement, mais à partir de la ligne 7 il n'y a que des points-virgules. Voir p. j.

Merci pour l’aide.

csv guillemets

Bonsoir

Je ne comprends pas , chez moi , aucun problème.

Ou alors ton fichier n'est pas conçu de la même façon que celui que tu m'as donné... exemple tu as peut-être des bordures de cellules ou quelque chose comme cela qui empêchent de cibler correctement ta dernière ligne.

D'après ton dernier fichier , cela marche:

Donc , si tu as toujours des problèmes, envoie un fichier plus ressemblant à la réalité.

A+

Bonsoir,

Pour les guillemets ça semblerait fonctionner . Mais, j’ai constaté un autre problème , dans les données (catégorie bla bla blla), quelques cellules contenant le mot "No". Je sais que vous avez inclus ce mot dans une variable, mais cela a créé un désordre dans les données de cette colonne suite à l'exécution de la Macro.

Peut-être la solution est de supprimer d’abord les cellules contenant la valeur « No » dans les lignes de titres, puis lancer le reste des opérations.

Qu’en pensez-vous?

Ci-joint un autre fichier contenant ce problème là pour que vous puissiez faire des tests.

Désolé, mon document est très compliqué à traiter.

Merci pour l'aide.

Bonjour

Cela convient_il mieux ??

Je me suis basée sur la couleur de fond du titre...

A+

Bonjour,

Malheureusement, dans mon vrai fichier les titres des colonnes ne sont pas colorés. Le document principal est un fichier HTML, je l'importe dans Excel sans mise en forme. Est-ce possible de trouver une autre piste à utiliser dans la variable?

C'est le seul problème qui reste pour le moment dans le traitement de ce fichier. Le reste me semble correct.

Merci pour tout.

Bonjour

Je m'étais absentée.

Vois ce nouveau fichier .

Dis-moi

On va bien finir par s'en sortir, j'espère.

A+

Merci pou tout.

Rechercher des sujets similaires à "copier condition"