Communauté Fb
Follow us on twitter
Les vidéos du site
Le site complément

Programmer en vb

Bonjour et bienvenue,

Programmer en VB est le site qui vous fera prendre conscience que vous pouvez concevoir votre programme informatique vous-même, que vous soyez artisan, employé ou étudiant.

Le Visual Basic est un langage informatique très puissant, très flexible et très abordable.
Une version en application se trouve sous Office
Excel pour exemple :
Tapez Alt + F11 à l’aide de votre clavier puis vous voilà dans l’éditeur de code VBA.

Notre forum d’entraide vous offre des tutoriels ainsi que divers exemples tout prêt à adapter à votre projet personnel.
Nous vous demandons uniquement de la bonne humeur et de la bonne volonté pour toutes questions ou toutes aides quelle qu’elle soit.
Sachez que pour progresser rapidement il est conseillé d’aider au mieux les autres membres.
Nous ne sommes pas là pour juger les qualités ou défauts de codes proposés, mais pour trouver ensemble la solution à votre demande.

A vos claviers :

Afin de remplir le forum, nous vous demandons de partager sur les réseaux sociaux et autres.
https://www.facebook.com/AdminPVB/


Merci de nous rejoindre sur http://programmer-en-vb.forumactif.org/
Merci d'avoir pris le temps de lire.
Merci pour votre inscription.

L'équipe de Programmer-en-VB

Forum de programmation VBA et VB.NET

Welcome if you do not speak french,you are able to translate the whole topics with the flags just below this message. Click to English

Visual Basic Application et VB.net de puissants langages à la portée de tous.

Participez et soyez acteurs des divers forums ci-dessous.

Bienvenue à chaque nouveaux membres et merci à tous ceux qui font vivre ce forum.


Qui est en ligne ?

Il y a en tout 7 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 7 Invités

Aucun


Le record du nombre d'utilisateurs en ligne est de 65 le Mar 8 Juil - 23:40

Statistiques

Nos membres ont posté un total de 6114 messages dans 689 sujets

Nous avons 561 membres enregistrés

L'utilisateur enregistré le plus récent est nabsam99

Recherche dans les forums

Utiliser cette méthode afin de trouver rapidement les discussions disponible sur notre forum.


Derniers sujets

» Instants musique
par Berly Mer 18 Juil - 21:18

» Outlook ne s'ouvre pas
par danpom302 Dim 8 Juil - 23:16

» Faute de code .....Que décodez vous dans ce film ?
par Berly Dim 24 Juin - 11:35

» Localiser tous les #N/A dans la plage ZONNE
par AdminPVB Sam 16 Juin - 22:37

» Configuration Editeur
par Berly Mer 13 Juin - 22:25

» Des idées .......vous en avez ?
par Berly Mar 12 Juin - 17:19

» Bienvenue à lina.bouda13
par AdminPVB Dim 10 Juin - 22:28

» Manquant:windows common controls 6 (SP6)
par TitiPointCom Sam 9 Juin - 8:47

» Déplacer ligne sélectionnée par Combobox, d'un tableau à un autre
par TitiPointCom Ven 8 Juin - 23:33

» Problème d'affichage de labels
par TitiPointCom Mar 5 Juin - 10:07

» Bienvenue à Alis
par AdminPVB Lun 4 Juin - 20:34

» Les Boucles
par Berly Dim 3 Juin - 14:57

» bienvenue a Dengpao
par AdminPVB Jeu 31 Mai - 21:40

» bienvenue a BasMar01 et coucou86
par AdminPVB Lun 28 Mai - 6:31

» Bienvenue à Pralin
par Berly Ven 25 Mai - 21:27

Utiliser le bouton résolu

Dans votre message d'origine
cliquer sur le bouton



Ensuite tout en bas sur
Modifier le titre du sujet
cliquer sur le bouton

Résolu !!!

Ensuite changer l’icône du sujet par le bouton

Voilà pas plus compliqué que cela.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Partenaires


créer un forum



Annuaire referencement


Flux RSS


MSN 

Juillet 2018

LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Calendrier Calendrier

Petit souci d'affichage de valeurs(Tableau) valeurs saisies au clavier

Sam 14 Avr - 21:19 par Berly

Bonsoir a tous  Very Happy.

Voila j'ai un petit souci de méthode .

Je poste le code ,Ne vous souciez pas des zones de commentaire.

A la fin le nombre d éléments du tableau correspond bien au nombres de valeurs saisies par l'utilisateur .

Je ne trouve pas la méthode pour afficher les valeurs .....bon c'est vrai que en ce moment je bricole  Rolling Eyes.

Merci pour vos réponses  Wink.

Code:
[Imports …


[ Lecture complète ]
Traduction D'algorithmes

Mer 7 Mar - 22:28 par Berly

Bonsoir A toutes et Tous .

J'ouvre ce Post en vue d'une éventuelle collaboration de membres désireux de collaborer a l'évolution de tous.

Le but de ce forum ,consisterai a rechercher des Algorithmes en "Pseudo-code", sans restriction de ressources en appliquant le principe du copié collé .(Sans omettre de citer les sources de provenance  Very Happy,Livres ,exercices scolaires Very Happy ,etc.....)

La …

[ Lecture complète ]
SOS traduction

Dim 4 Mar - 9:11 par e.sainturlo

Bonjour à tous,

Je souhaite comprendre ce qui se cache derrière cette longue suite d'instructions imbriquées les unes dans les autres:

numero2 = Conversions.ToInteger(Operators.AddObject(numero2,Operators.ModObject(Operators.MultiplyObject(NewLateBinding.LateIndexGet(MPMP, new object[] {numero1,numero3}, null), Strings.Asc(MCMC.Substring(numero3, 1)) - 65), 26)));

Quelqu'un saurait-il …

[ Lecture complète ]
Et si on parlait des fichiers.txt et fichiers.csv

Ven 2 Fév - 20:51 par Berly

Bonsoir le forum  Very Happy

Je viens vers vous pour étudier en vbnet les fichiers.

Actuellement j'étudie dans une autre langage ces fichiers.



https://fr.wikipedia.org/wiki/Comma-separated_values.


Ces bases de données sont intéressantes a exploiter ,pour diverses applications dans la vie de tous les jours.


1° Création de fichiers avec extension ou pas.Y a t'il une bibliothèque native en …

[ Lecture complète ]
VB 2005 express

Mar 6 Fév - 17:02 par christian80.1951

Bonjours a tous,
J'utilise vb 2005 express.
dans la form1.vb[design] je créer une listebox .
Lorsque je veux la positionner dans cette form , lors de son déplacement avec la souris ma listbox devient invisible,
ce qui rend son positionnement mal-aisé.
Ce phénomène se produit aléatoirement ! ( certainement une mauvaise manip ) et cet état persiste dans le projet.
J'espère être compréhensible.


[ Lecture complète ]
Création d'un raccourci sur le Bureau pour son Application

Mar 10 Oct - 18:49 par IFFIC

Bonsoir à tous, ou Bonjour s'il est plus tôt qu'à cette heure,
Je ne suis pas passé bien souvent par ici, car j'étais pris sur un gros projet depuis voici un peu plus d'un an.

Au bénéfice de bidouilles trouvées dans mes travaux, je vous livre celle-ci:
Car il est bien confortable de n'avoir pas à fouiller dans l'arborescence d'un disque externe ou une clé USB, voire en ayant changé de …

[ Lecture complète ]
Petits bidouillages pour ce faciliter La vie ,Astuces et codes pratique

Dim 11 Juin - 12:20 par Berly

Bonjour le Forum  Very Happy.

Lorsque j'écrivais dans mon code Console.Writeline ("Patati,Patata,......) ,j'ai d'abord utilisé le copié collé en changeant la valeur du texte .

Bon d'accord ,c'est bien mais ,ça me saoul un peu ,au fur et a mesure de mes apprentissages ,j'ai découvert les fonctions  Very Happy.

Maintenant je partage celle ci avec vous .

On est la sur un exemple de code en "Mode …

[ Lecture complète ]
Menustrip Vbnet Visual Studio

Sam 16 Sep - 21:05 par Berly

Bonsoir le Forum  Very Happy

Je suis actuellement en construction  d'un logiciel pour les enfants en scolarité primaire.(Visual Studio Community 2017)

Je l'ai commencé et il fonctionne parfaitement a ce stade.

J'utilise Le contrôle MenuSrip.

Au commencement il est question d'afficher par catégorie tables de 1 a 10 .
Un Premier Bouton "Tables de Multiplications" Aucun événement 
Puis Ajouts …

[ Lecture complète ]
suppression d'un fichier txt en cours d'utilisation

Mar 5 Sep - 9:51 par La boc

Bonjour,

dans mon application j'ai un fichier txt qui est chargé dans un DataGridView en fonction du n° ID.

Quand je supprime un ID, je dois aussi supprimer ce fichier, quand je fait un delete ça marche bien, le fichier est bien supprimé du dossier mais quand je ferme l'application j'ai un message box:

"Violation de l’accès concurrentiel:
Delete command a effectué 0 des enregistrements …

[ Lecture complète ]

souci avec boutons remonter où descendre lignes

Partagez
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu souci avec boutons remonter où descendre lignes

Message par grisan29 le Sam 2 Nov - 19:44

bonjour a vous tous

dans cette discussion http://programmer-en-vb.forumactif.org/t111-logo-non-sauvegarder a été entamé un sujet que je recréer ici
donc j'ai un souci avec les boutons "remonter" et "descendre "une ligne dès qu'il y a une tranche où un commentaire d'écrit dans la col C
voici le fichier en question http://pvb.comeze.com/Fichier_upload/grisan29/essaiarticles_2v.xlsm

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Dim 3 Nov - 12:04

Bonjour Grisan29, le forum

Voici le code modifier sur le ligne if & font bold <> True mis en commentaire, pour le bouton remonter .
Code:
Private Sub Remonter_Ligne()
  Dim T(), NoLigne As Long, S As Double, H As Double
  Dim DerLig As Long, Ok As Boolean, ActLigne As Long

  'Feuil1 est le nom de la propriété de l'objet "Feuille" visible
  'dans la fenêtre de l'éditeur de code et non le nom de l'onglet
  'de la feuille.
  'With Feuil1
  With Worksheets("facture")
    'Trouve la dernière ligne occupée dans les colonnes c:h
    DerLig = .Range("C:H").Find(What:="*", _
                                LookIn:=xlFormulas, _
                                SearchOrder:=xlByRows, _
                                SearchDirection:=xlPrevious).Row
    'Si ton tableau était vide, la dernière ligne serait
    'la première ligne de ton tableau.
    If DerLig < 19 Then DerLig = 19
  End With

  'Si l'usager a sélectionné une cellule dans la plage C19:Cx
  If Not Intersect(ActiveCell, Range("C19:H" & DerLig)) Is Nothing Then
    'Une variable pour le numéro de ligne
    NoLigne = ActiveCell.Row
    'Si la ligne sélectionnées est en caractère grand et fusionnée
    If Range("C" & NoLigne).MergeCells = True And Range("C" & NoLigne).Font.Bold = True Then
      'On remonte d'une ligne
      ActiveCell.offset(-1).Select
      'On met fin à l'opération
      Exit Sub
    End If
    'si la ligne active est 19, fin des opérations
    'car on ne peut pas remonter plus haut
    If ActiveCell.Row = 19 Then Exit Sub
    'une petite boucle afin de trouver la ligne aus-dessus de la ligne
    'Active qui ne soit pas fusionnée et en caractère gras.
    Do
      NoLigne = NoLigne - 1
      If Range("C" & NoLigne).MergeCells <> True Then 'And _Range("C" & NoLigne).Font.Bold <> True Then
        'Si le critère est respecter, sortie de la boucle
        Ok = True
        Exit Do
      End If
    Loop Until NoLigne = 19
    'Une deuxième variable pour le numéro de la ligne de la cellule active.
    ActLigne = ActiveCell.Row
    'Au sortir de la boucle, si tout est Ok
    If Ok = True Then
      'met dans une variable tableau, le contenu de la ligne
      T = Rows(NoLigne).Cells.Value
      'met dans S la hauteur de la ligne active
      S = Rows(ActLigne).Height
      'met en H la hauteur de la ligne où sera copiée les données
      H = Rows(NoLigne).Height
      'Copie de la ligne active vers la ligne au-dessus
      Rows(NoLigne).Value = Rows(ActLigne).Value
      'Copie des valeurs de T dans la ligne active
      Rows(ActLigne) = T
      'Nouvelle hauteur de la ligne de la ligne active s'il y a lieu
      Rows(ActLigne).RowHeight = H
      'Nouvelle hauteur de la ligne de la ligne au-dessus s'il y a lieu.
      Rows(NoLigne).RowHeight = S
      'sélection de la ligne où ont été copiées les données
      Rows(NoLigne).Cells(1, 4).Select
    End If
  End If
End Sub
reste la descente si la remonter te convient.

A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Dim 3 Nov - 13:11

bonjour Fhoest

pour un dimanche tu est le sunny du jour gris et humide en Bretagne

la code modifié permet au bouton "remonter"de bien travailler cheers 

j'ai appliqué le même code au bouton descente et youpi cheers 

un très Grand GRand GRANg GRAND " MERCI"

pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Sam 16 Nov - 6:58

bonjour Fhoest et le forum

je n'avais pas eu a utiliser les boutons "remonter et descendre" avant hier et la formule appliquée pour le calcul du montant ht est effacer, de même que celui de la tva,
ce qui fait qu'en ne modifiant que la quantité le montant ne bouge pas , hors il devrai s'écrire comme ceci
=$I$21*$K$21
et celui de la tva
=SI(M21=1;I21*K21*0,07;"")
revoici le code complet
Code:
Private Sub Remonter_Ligne()
  Dim T(), NoLigne As Long, S As Double, H As Double
  Dim DerLig As Long, Ok As Boolean, ActLigne As Long

  'Feuil1 est le nom de la propriété de l'objet "Feuille" visible
  'dans la fenêtre de l'éditeur de code et non le nom de l'onglet
  'de la feuille.
  'With Feuil1
  With Worksheets("facture")
    'Trouve la dernière ligne occupée dans les colonnes c:h
    DerLig = .Range("C:H").Find(What:="*", _
                                LookIn:=xlFormulas, _
                                SearchOrder:=xlByRows, _
                                SearchDirection:=xlPrevious).Row
    'Si ton tableau était vide, la dernière ligne serait
    'la première ligne de ton tableau.
    If DerLig < 19 Then DerLig = 19
  End With

  'Si l'usager a sélectionné une cellule dans la plage C19:Cx
  If Not Intersect(ActiveCell, Range("C19:H" & DerLig)) Is Nothing Then
    'Une variable pour le numéro de ligne
    NoLigne = ActiveCell.Row
    'Si la ligne sélectionnées est en caractère grand et fusionnée
    If Range("C" & NoLigne).MergeCells = True And _
       Range("C" & NoLigne).Font.Bold = True Then
      'On remonte d'une ligne
      ActiveCell.offset(-1).Select
      'On met fin à l'opération
      Exit Sub
    End If
    'si la ligne active est 19, fin des opérations
    'car on ne peut pas remonter plus haut
    If ActiveCell.Row = 19 Then Exit Sub
    'une petite boucle afin de trouver la ligne aus-dessus de la ligne
    'Active qui ne soit pas fusionnée et en caractère gras.
    Do
      NoLigne = NoLigne - 1
      If Range("C" & NoLigne).MergeCells <> True And _
         Range("C" & NoLigne).Font.Bold <> True Then
        'Si le critère est respecter, sortie de la boucle
        Ok = True
        Exit Do
      End If
    Loop Until NoLigne = 19
    'Une deuxième variable pour le numéro de la ligne de la cellule active.
    ActLigne = ActiveCell.Row
    'Au sortir de la boucle, si tout est Ok
    If Ok = True Then
      'met dans une variable tableau, le contenu de la ligne
      T = Rows(NoLigne).Cells.Value
      'met dans S la hauteur de la ligne active
      S = Rows(ActLigne).Height
      'met en H la hauteur de la ligne où sera copiée les données
      H = Rows(NoLigne).Height
      'Copie de la ligne active vers la ligne au-dessus
      Rows(NoLigne).Value = Rows(ActLigne).Value
      'Copie des valeurs de T dans la ligne active
      Rows(ActLigne) = T
      'Nouvelle hauteur de la ligne de la ligne active s'il y a lieu
      Rows(ActLigne).RowHeight = H
      'Nouvelle hauteur de la ligne de la ligne au-dessus s'il y a lieu.
      Rows(NoLigne).RowHeight = S
      'sélection de la ligne où ont été copiées les données
      Rows(NoLigne).Cells(1, 4).Select
    End If
  End If
End Sub
ce sont les colonnes "L à P " qui sont concernées
il faudrait pouvoir réadapter la partie du bouton ajout sur feuille qui fait les comptes
Code:
'calcul du montant HT
    If IsNumeric(.Cells(lig, "I")) And IsNumeric(.Cells(lig, "K")) Then
      .Cells(lig, "O").FormulaR1C1 = "=IF(RC[-2]=1,RC[-6]*RC[-4]*0.07,"""")"
      .Cells(lig, "O").NumberFormat = "#,##0.00€"
      .Cells(lig, "P").FormulaR1C1 = "=IF(RC[-3]=2,RC[-7]*RC[-5]*0.196,"""")"
      .Cells(lig, "P").NumberFormat = "#,##0.00€"
      .Cells(lig, "L").FormulaR1C1 = "=RC[-1]*RC[-3]"
      .Cells(lig, "L").NumberFormat = "#,##0.00€"
    End If
    'calcul du montant HT
    If IsNumeric(.Cells(lig, "I")) And IsNumeric(.Cells(lig, "K")) Then
        .Cells(lig, "L") = "=" & .Cells(lig, "I").AddressLocal & "*" & .Cells(lig, "K").AddressLocal
    Else
      .Cells(lig, "O") = ""
      .Cells(lig, "P") = ""
    End If
    'calcul des totaux montant HT, TVA5,5, TVA 19,6
    For i = lig To 1 Step -1
        If .Cells(i, "K") = "REPORT" Or .Cells(i, "K") = "Quantité" Then Exit For
    Next i
    '.Cells(lig + 1, "L").Formula = "=SUM(" & .Range(.Cells(i + 1, "L"), .Cells(lig, "L")).AddressLocal & ")"
    .Cells(lig + 1, "L").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "O").Formula = "=SUM(" & .Range(.Cells(i + 1, "O"), .Cells(lig, "O")).AddressLocal & ")"
    .Cells(lig + 1, "O").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "P").Formula = "=SUM(" & .Range(.Cells(i + 1, "P"), .Cells(lig, "P")).AddressLocal & ")"
    .Cells(lig + 1, "P").NumberFormat = "#,##0.00€"
   
    If .Cells(lig + 1, "P") < 0.0001 Then .Cells(lig + 1, "P") = ""
    If .Cells(lig + 1, "O") < 0.0001 Then .Cells(lig + 1, "O") = ""
ou s'en inspirer, je vais m'y pencher

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Sam 16 Nov - 19:30

Bonjour grisan29,
quand tu parles de changer la quantité c'est directement sur la feuille excel ou en passant par le usf ?
Merci et à bientôt.


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Sam 16 Nov - 20:37

bonjour Fhoest
quand je modifie le devis c'est une partie par l'usf quand je rajoute une ligne d'article , mais autrement cela se passe sur la feuille mais ce code ne devrai pas effacer les formules existantes sur la feuille

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Sam 16 Nov - 23:11

Bonjour Grisan29,

Une partie ok pour le reste un petit problème que je ne trouve pas pour l'instant que le code remonter
Code:
Private Sub Remonter_Ligne()
      Dim T(), NoLigne As Long, S As Double, H As Double
      Dim DerLig As Long, Ok As Boolean, ActLigne As Long

      'Feuil1 est le nom de la propriété de l'objet "Feuille" visible
      'dans la fenêtre de l'éditeur de code et non le nom de l'onglet
      'de la feuille.
      'With Feuil1
      With Worksheets("facture")
        'Trouve la dernière ligne occupée dans les colonnes c:h
        DerLig = .Range("C:H").Find(What:="*", _
                                    LookIn:=xlFormulas, _
                                    SearchOrder:=xlByRows, _
                                    SearchDirection:=xlPrevious).Row
        'Si ton tableau était vide, la dernière ligne serait
        'la première ligne de ton tableau.
        If DerLig < 19 Then DerLig = 19
      End With

      'Si l'usager a sélectionné une cellule dans la plage C19:Cx
      If Not Intersect(ActiveCell, Range("C19:H" & DerLig)) Is Nothing Then
        'Une variable pour le numéro de ligne
        NoLigne = ActiveCell.Row
        'Si la ligne sélectionnées est en caractère grand et fusionnée
        If Range("C" & NoLigne).MergeCells = True And Range("C" & NoLigne).Font.Bold = True Then
          'On remonte d'une ligne
          ActiveCell.offset(-1).Select
          'On met fin à l'opération
          Exit Sub
        End If
        'si la ligne active est 19, fin des opérations
        'car on ne peut pas remonter plus haut
        If ActiveCell.Row = 19 Then Exit Sub
        'une petite boucle afin de trouver la ligne aus-dessus de la ligne
        'Active qui ne soit pas fusionnée et en caractère gras.
        Do
          NoLigne = NoLigne - 1
          If Range("C" & NoLigne).MergeCells <> True Then 'And _Range("C" & NoLigne).Font.Bold <> True Then
            'Si le critère est respecter, sortie de la boucle
            Ok = True
            Exit Do
          End If
        Loop Until NoLigne = 19
        'Une deuxième variable pour le numéro de la ligne de la cellule active.
        ActLigne = ActiveCell.Row
        'Au sortir de la boucle, si tout est Ok
        If Ok = True Then
          'met dans une variable tableau, le contenu de la ligne
          T = Rows(NoLigne).Cells.Value
          'met dans S la hauteur de la ligne active
          S = Rows(ActLigne).Height
          'met en H la hauteur de la ligne où sera copiée les données
          H = Rows(NoLigne).Height
          'Copie de la ligne active vers la ligne au-dessus
          Rows(NoLigne).Value = Rows(ActLigne).Value
          Range("L" & NoLigne).Formula = "=$I" & NoLigne & "*$K" & NoLigne
          'partie en dessous bon mais pas encore fonctionnelle (je cherche pourquoi)
          Range("o" & NoLigne).Select
          ActiveCell.FormulaR1C1 = "=SI(RC[-2]=1,RC[-6]*RC[-4]*0.07,"""")"
          Range("P" & NoLigne).Select
          ActiveCell.FormulaR1C1 = "=SI(RC[-2]=1,RC[-7]*RC[-5]*0.196,"""")"
          'Copie des valeurs de T dans la ligne active
          Rows(ActLigne) = T
          'Nouvelle hauteur de la ligne de la ligne active s'il y a lieu
          Rows(ActLigne).RowHeight = H
          'Nouvelle hauteur de la ligne de la ligne au-dessus s'il y a lieu.
          Rows(NoLigne).RowHeight = S
          'sélection de la ligne où ont été copiées les données
          Rows(NoLigne).Cells(1, 4).Select
        End If
      End If
    End Sub
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Dim 17 Nov - 9:36

Bonjour Fhoest

merci pour cette modification qui mets bien la formule dans les colonnes de tva mais n'affiche la valeur que sous #NOM?, mais en cliquant dans la barre de formule cela reviens bien
le seul souci est que sur son passage la ligne qui remonte efface les formules au fur et a mesure

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Dim 17 Nov - 11:53

Bonjour,
voilà un bon dimanche pour toi:
Code:
 Private Sub Remonter_Ligne()
          Dim T(), NoLigne As Long, S As Double, H As Double
          Dim DerLig As Long, Ok As Boolean, ActLigne As Long

          'Feuil1 est le nom de la propriété de l'objet "Feuille" visible
          'dans la fenêtre de l'éditeur de code et non le nom de l'onglet
          'de la feuille.
          'With Feuil1
          With Worksheets("facture")
            'Trouve la dernière ligne occupée dans les colonnes c:h
            DerLig = .Range("C:H").Find(What:="*", _
                                        LookIn:=xlFormulas, _
                                        SearchOrder:=xlByRows, _
                                        SearchDirection:=xlPrevious).Row
            'Si ton tableau était vide, la dernière ligne serait
            'la première ligne de ton tableau.
            If DerLig < 19 Then DerLig = 19
          End With

          'Si l'usager a sélectionné une cellule dans la plage C19:Cx
          If Not Intersect(ActiveCell, Range("C19:H" & DerLig)) Is Nothing Then
            'Une variable pour le numéro de ligne
            NoLigne = ActiveCell.Row
            'Si la ligne sélectionnées est en caractère grand et fusionnée
            If Range("C" & NoLigne).MergeCells = True And Range("C" & NoLigne).Font.Bold = True Then
              'On remonte d'une ligne
              ActiveCell.offset(-1).Select
              'On met fin à l'opération
              Exit Sub
            End If
            'si la ligne active est 19, fin des opérations
            'car on ne peut pas remonter plus haut
            If ActiveCell.Row = 19 Then Exit Sub
            'une petite boucle afin de trouver la ligne aus-dessus de la ligne
            'Active qui ne soit pas fusionnée et en caractère gras.
            Do
              NoLigne = NoLigne - 1
              If Range("C" & NoLigne).MergeCells <> True Then 'And _Range("C" & NoLigne).Font.Bold <> True Then
                'Si le critère est respecter, sortie de la boucle
                Ok = True
                Exit Do
              End If
            Loop Until NoLigne = 19
            'Une deuxième variable pour le numéro de la ligne de la cellule active.
            ActLigne = ActiveCell.Row
            'Au sortir de la boucle, si tout est Ok
            If Ok = True Then
              'met dans une variable tableau, le contenu de la ligne
              T = Rows(NoLigne).Cells.Value
              'met dans S la hauteur de la ligne active
              S = Rows(ActLigne).Height
              'met en H la hauteur de la ligne où sera copiée les données
              H = Rows(NoLigne).Height
              'Copie de la ligne active vers la ligne au-dessus
              Rows(NoLigne).Value = Rows(ActLigne).Value
             
              'Mise à jour des formules ligne NoLigne
              Range("L" & NoLigne).Formula = "=$I" & NoLigne & "*$K" & NoLigne
              'partie en dessous bon mais pas encore fonctionnelle (je cherche pourquoi)
              Range("o" & NoLigne).Select
              ActiveCell.FormulaR1C1 = "=IF(RC[-2]=1,RC[-6]*RC[-4]*0.07,"""")"
              Range("P" & NoLigne).Select
              ActiveCell.FormulaR1C1 = "=IF(RC[-2]=1,RC[-7]*RC[-5]*0.196,"""")"
             
              'Copie des valeurs de T dans la ligne active
              Rows(ActLigne) = T
              'Nouvelle hauteur de la ligne de la ligne active s'il y a lieu
              Rows(ActLigne).RowHeight = H
              'Nouvelle hauteur de la ligne de la ligne au-dessus s'il y a lieu.
              Rows(NoLigne).RowHeight = S
              'sélection de la ligne où ont été copiées les données
              Rows(NoLigne).Cells(1, 4).Select
           
            'Mise à jour des formules ligne ActLigne
              Range("L" & ActLigne).Formula = "=$I" & ActLigne & "*$K" & ActLigne
              Range("o" & ActLigne).Select
              ActiveCell.FormulaR1C1 = "=IF(RC[-2]=1,RC[-6]*RC[-4]*0.07,"""")"
              Range("P" & ActLigne).Select
              ActiveCell.FormulaR1C1 = "=IF(RC[-2]=1,RC[-7]*RC[-5]*0.196,"""")"
           
            End If
          End If
        End Sub
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Dim 17 Nov - 16:43

bonjour Fhoest Cool 

Merci beaucoup,Very Happy  cela est maintenant comme il faut Very Happy sauf qu'il y a un mais:
quand je sélectionne la ligne a remonter, la ligne remonte c'est parfait mais la sélection se trouve en col "P", hors lorsque je dois remonter de 2 où plus de lignes serai mieux que la cellule de la col "C" reste sélectionnée le temps de la remonter et pareil pour la descente où que la ligne sélectionnée reste active le temps de la remonter ou la descendre

il faudrait que cette ligne
Code:
'Si l'usager a sélectionné une cellule dans la plage C19:Cx
  If Not Intersect(ActiveCell, Range("C19:H" & DerLig)) Is Nothing Then
reste active en quelque sorte

le code fonctionne identiquement bien avec le bouton "descendre"

en cas merci Beaucoup de ton aide et de ton savoir Cool Cool Very Happy Very Happy cheers 

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Dim 17 Nov - 20:03

Bonsoir Grisan29,
déplace cette ligne vers la fin pour la sélection:
Code:
 Rows(NoLigne).Cells(1, 4).Select
Pour le mais.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Dim 17 Nov - 20:15

Bonsoir Fhoest cheers 

Merci beaucoup Smile de me faire finir mon dimanche en beauté grâce a tes compétences Very Happy 

Pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Ven 22 Nov - 9:15

bonjour Fhoest et le forum
désolé de revenir a la charge Crying or Very sad 

j'ai un autre souci concernant la remonter ou descente d'une ligne car maintenant j'ai rajoutée la fonction d'un calcul de sous-total qui s'intercale à la fin d'une tranche par appui sur un bouton et du coup perturbe le code de remonter , je joint le code de sous total pour aide avec mes excuses pour l'indentage
Code:
Private Sub soustot_Click()
Set ws = ActiveSheet
'lf numéro de dernière ligne pour la formule sous-total
lf = ActiveCell.Row
' on vérifie que la cellule sélectionnée est bien un entête de rubrique
If ActiveCell.Column <> 3 Or ActiveCell = "" Then
MsgBox "vous devez selectionner la rubrique pour laquelle vous voulez un sous-total"
Exit Sub
End If
' fl numéro de première ligne pour la formule sous-total
fl = 0
' on empêche les events
Application.EnableEvents = False
' on mémorise le paramétrage pour le calcul
calculationparam = Application.Calculation
' on met le paramétrage du calcul en manuel
Application.Calculation = xlCalculationManual
' soustotalencours variable de controle de la boucle
soustotalencours = True
' tant qu'on a pas terminé l'exercice de sous-total
While soustotalencours
If fl = 0 And ws.Cells(lf, 3) <> "" Then
'ligne rubrique trouvée
fl = lf
ElseIf fl <> 0 And (ws.Cells(lf, 4) = "" Or ws.Cells(lf, 3) <> "") Then
'ligne blanche ou ligne nouvelle rubrique trouvée après le détail d'une rubrique
If Left(ws.Cells(lf, 7), 4) <> "sous" Then
'il n'y a pas encore de ligne sous-total, on insère une nouvelle ligne
ws.Rows(lf).Insert Shift:=xlDown
End If
' on inscrit sous-total, suivi de la rubrique, suivi de ":"
ws.Cells(lf, 7) = "sous total : " & ws.Cells(fl, 3) & " : "
' on fait le cadrage à droite
ws.Cells(lf, 7).HorizontalAlignment = xlRight
ws.Cells(lf, 7).Font.Underline = xlUnderlineStyleSingle
'ws.Cells(lf, 7).Font.Bold = True
ws.Cells(lf, 7).WrapText = False
' on adapte le format pour la somme
ws.Cells(lf, 8).NumberFormat = "0.00€"
' on insère la formule =sum( fl,lf-1)
fs = "=sum(" & ws.Cells(fl, 12).Address & ":" & ws.Cells(lf - 1, 12).Address & ")"
ws.Cells(lf, 8).Formula = fs
soustotalencours = False
fl = 0
End If
lf = lf + 1
Wend
Application.EnableEvents = True
Application.Calculation = calculationparam
End Sub
en fait le sous total s'insère en col H et J  par ligne supplémentaire je joint une image d'un devis représentant ces sous total
http://pvb.comeze.com/Fichier_upload/grisan29/remonter_avec_soustot-1.jpg

sur l'image on voit aussi que le dernier sous total s'insère après la bordure, mais comment faire pour qu'il soit au dessus où que la bordure soit en dessous

Pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Ven 22 Nov - 10:50

bonjour

oubli de retirer résolu

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Ven 22 Nov - 20:07

Bonjour,
dans un premier temps n'est il pas possible de faire comme ça


A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Ven 22 Nov - 20:24

bonsoir Fhoest

merci de ta réponse qui serai une solution,  j'ai pensé à ne mettre les sous totaux qu'en fin de devis car cela est possible avec le code , mais je me suis aperçu du souci lorsqu'il faut modifier un devis en faisant un devis bidon comme celui que j'ai donné

j'ai réfléchi a ta solution mais il m'arrive d'avoir un texte explicatif a écrire sur 2 où 3 lignes et cette écriture peut se terminer pile a la fin de ligne et ne pas laisser de place
le devis exemple n'est pas réel car
électricité
doit être écrit comme une tranche en gras et le texte explicatif à la suite
c'est pour cela que j'ai mis le sous total en fin de secteur

Pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Ven 22 Nov - 21:07

re bonjour
de toute façon il y a un autre souci de taille
quand une tranche est écrite en col C et que la ligne dessous est un commentaire , le sous total s'insère entre ces 2 lignes et pas en bas de secteur,
voici l'image

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Ven 22 Nov - 22:13

Bonsoir,
une question c'est bien la colonne D qui est rempli en sous total ?
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Sam 23 Nov - 5:42

bonjour Fhoest

ce n'est pas en col "D" que ce mets le sous total si on lit bien son code c'est en col "G" et le résultat en col "H" numérotée 7 et 8 dans le code
Code:
'il n'y a pas encore de ligne sous-total, on insère une nouvelle ligne
ws.Rows(lf).Insert Shift:=xlDown
End If
' on inscrit sous-total, suivi de la rubrique, suivi de ":"
ws.Cells(lf, 7) = "sous total : " & ws.Cells(fl, 3) & " : "
' on fait le cadrage à droite
ws.Cells(lf, 7).HorizontalAlignment = xlRight
ws.Cells(lf, 7).Font.Underline = xlUnderlineStyleSingle
'ws.Cells(lf, 7).Font.Bold = True
ws.Cells(lf, 7).WrapText = False
' on adapte le format pour la somme
ws.Cells(lf, 8).NumberFormat = "0.00€"
' on insère la formule =sum( fl,lf-1)
fs = "=sum(" & ws.Cells(fl, 12).Address & ":" & ws.Cells(lf - 1, 12).Address & ")"
ws.Cells(lf, 8).Formula = fs
soustotalencours = False
Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Sam 23 Nov - 8:13

Bonjour,
en changeant cette partie de code cela peut il fonctionner ?
Code:
 'Si la ligne sélectionnées est en caractère grand et fusionnée
        If Range("C" & NoLigne).MergeCells = True And Range("C" & NoLigne).Font.Bold = True And range("G" & Noligne -1) like "sous total :" & "*" Then
          'On remonte d'une ligne
          ActiveCell.offset(-1).Select
          'On met fin à l'opération
          Exit Sub
        End If
code du bouton remonter pour l'exemple.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Sam 23 Nov - 8:40

bonjour Fhoest

test uniquement avec le bouton remonter une ligne

merci pour ce début de code qui fonctionne par passage en force et en modifiant le format d'écriture de la tranche et du commentaire qui sont au dessus et inverse l'ordre des lignes en mettant la tranche après le commentaire

je reviens dans l'après midi(visite client oblige)

Pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Dim 24 Nov - 8:29

bonjour Fhoest et le forum

j'ai trouvé
un exemple de sous total qui se fait par des formules et sur cet exemple sous-total est écrit en col B donc si je part du même principe il suffirai que le sous total soit inscrit comme une tranche où un commentaire pour etre pris en compte par les boutons remonter et descendre

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2048
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: souci avec boutons remonter où descendre lignes

Message par AdminPVB le Dim 24 Nov - 20:03

Bonjour,
serait il possible d'avoir le fichier avec un exemple rempli ?
merci.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Dim 24 Nov - 21:00

bonsoir Fhoest

Merci, je te joints le classeur que j'utilise et qui prends ses articles dans la base sur c:\ mais pour le souci de sous total je pense qu'il fonctionne sans ainsi que les boutons de remonter où descendre
http://pvb.comeze.com/Fichier_upload/grisan29/essai_pour_sous_total.xlsm
donc dans la première partie le sous total s'est bien positionné car il n'y a pas de commentaire, par contre la 2ème partie a un commentaire et le sous total s'est insérer entre la tranche et le commentaire( pas cool)

et par ailleurs lorsque le devis est fini comment faire pour que le sous total ne soit pas en dessous de la bordure

je serai de retour mercredi soir alors ne t'énerve pas si tu ne peux pas faire ce soir

Pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 828
Date d'inscription : 25/07/2013
Age : 55

Résolu Re: souci avec boutons remonter où descendre lignes

Message par grisan29 le Lun 2 Déc - 22:21

bonjour Fhoest

Pas d'idée depuis ?

Pascal

Contenu sponsorisé

Résolu Re: souci avec boutons remonter où descendre lignes

Message par Contenu sponsorisé


    La date/heure actuelle est Ven 20 Juil - 18:14