VBA Excel

Bonjour,

J'essaye d'adapter un code VBA pour une appliction EXCEL dont je vous joins le code

"Sub Selectcts()

Dim resultat As String

resultat = InputBox("ENTREZ LE NOM du COMMERCANT", "FILTRE par COMMERCANT", vbOKCancel) 'la variable reçoit la valeur entrée dans l'Inputbox

If resultat <> "" Then 'si la valeur est différente de "" on affiche le résultat

Sheets("Pesee").Select

'ne pas sélectionner les cellules vides

ActiveSheet.Range("$a$1:$g$3000").AutoFilter field:=1, Criteria1:="<>"

ActiveSheet.Range("$A$1:$G$1097").AutoFilter field:=5, Criteria1:=resultat

'on copie la sélection

Dim Maplage As Range

Set Maplage = Range("A2:G" & Range("a2").End(xlDown).Row)

Maplage.Select

'on copie la sélection

Selection.Copy

'on insere une nouvelle feuille

Sheets.Add

Feuil2.Range("A1").EntireRow.Copy ActiveCell

Range("A2").Select

'selectionner la premiere ligne vide

Range("A65536").End(xlUp).Offset(1).Select

'copier les valeurs des lignes sélectionnées

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Skipblanks:=False, Transpose:=False

'retirer les filtres

Sheets("Pesee").Activate

ActiveSheet.Range("$A$2:$G$3000").AutoFilter field = 1

End If

End Sub

La ligne de code "Selection.Pastespecial Paste:=xlPasteValues, Operation:=xlnone, Skipblanks:=Flse, Transpose:=False me renvoie le message d'erreur "Erreur d'exécution "1004" La méthode PasteSpecial de la valeur Range a échoué"

Pouvez-vous m'aider Merci

Bonjour,

Un essai ...

Sub Selectcts()
Dim resultat As String
Dim LaFeuil As String

resultat = InputBox("ENTREZ LE NOM du COMMERCANT", "FILTRE par COMMERCANT", vbOKCancel)      'la variable reçoit la valeur entrée dans l'Inputbox

If resultat <> "" Then      'si la valeur est différente de "" on affiche le résultat
      Sheets("Pesee").Select

   'ne pas sélectionner les cellules vides
      ActiveSheet.Range("$A$1:$G$3000").AutoFilter field:=1, Criteria1:="<>"
      ActiveSheet.Range("$A$1:$G$1097").AutoFilter field:=5, Criteria1:=resultat

   'on copie la sélection
      Dim Maplage As Range
      Set Maplage = Range("A2:G" & Range("a2").End(xlDown).Row)

   'on insere une nouvelle feuille
      Sheets.Add
      LaFeuil = ActiveSheet.Name

      Sheets("Pesee").Range("A1").EntireRow.Copy ActiveCell

      Maplage.Copy
   'selectionner la premiere ligne vide,    'copier les valeurs des lignes sélectionnées
      Sheets(LaFeuil).Range("A" & Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Skipblanks:=False, Transpose:=False

   'retirer les filtres
      Sheets("Pesee").Activate
      Range("$A$2:$G$3000").AutoFilter field:=1
   End If
End Sub

ric

bonjour

Merci cela fonctionne ss pb

Dans mon tableau d'origine j'ai une colonne avec des dates (colonne B) et des heures (colonne C) Quand les données sont copiées dans la nouvelle feuille je perds la mise en forme de ces colonnes Que puis je faire ?

Quand je saisis le nom dans Inputbox si je me trompe sur l'orthographe du nom dans la feuille ajoutée aucun nom n'est copié.... J'ai crée une feuille avec la liste des personnes Puis je m'en servir et comment ? Peut-être un formulaire avec liste déroulante

Merci pour tout

Bonjour,

Sans fichier représentatif, on peut suggérer longtemps...

PasteSpecial Paste:=xlPasteValues ne copie que la valeur, pas le format.

Vérifier le format des cellules cibles.

Ou faire un copie complète.

ric

Le but est de créer une facture pour faire payer par des clients les déchets émis.

Le fichier source vient d'une application externe et j'exporte les données sur la feuille "Pesee"

Je sélectionne un client et je transfère ces données uniquement les colonnes B, F et G sur une feuille "Facture" et j'imprime.

Les critères sont 1) le client 2) une période style "date début" et "date fin". Les critères peuvent les 2 en même temps, dans la majeure partie de cas, soit le critère 1 ou le critère 2

Merci de votre aide

Ps: j'ai la facture prête dans un autre fichier ... Excel

Bonjour,

Où est-ce, les formats qui ne suivent pas ? Car le résultat de la macro BtnExtraction_Click() donne des formats corrects dans la feuille créée.

Si c'est dans ta facture, il faudrait le code qui écrit dans la facture.

ric

bonjour,

Vous trouverez ci-joint le fichier EXCEL initiale qui permet à partir du nom sélectionné dans la liste déroulante de remplir une facture et d'archiver ces données.

J'essaye d'optimiser. En effet la formule permettant d'afficher les données dans le détail de la facture ralentit énormément l'ensemble. Sachant qu'il peut avoir une 50 aine de factures à imprimer ...De plus à terme, il faudra archiver le fichier correspondant au mois en cours avec l'ensemble des factures voire de conserver en format PDF chaque facture...

Le code VBA que vous m'avez fourni devrait me permettre d'optimiser l'affichage du détail de la facture.

Bonjour,

Édite ton message précédent et supprime le fichier, car il semble contenir de données confidentielles.

ric

Bonjour,

Ne désespère pas, ça avance bien.

ric

P.S. la suite en message privé.

Rechercher des sujets similaires à "vba"