#26 Le 06/10/2024, à 15:34
- Rafbor
Re : [Résolu] Message erreur sur variable en zBasic
Partage ton fichier si tu veux que je regarde.
Xubuntu 22.04 - Mes projets sur Github
Hors ligne
#27 Le 06/10/2024, à 16:59
- claudius723
Re : [Résolu] Message erreur sur variable en zBasic
Est ce que cela te convient ?
Sub EnregistrerSaisieAdherents2025
Dim oSheetS, oSheetD, oCell as Object
Dim nRowD as Long
Dim sRowD As string
'source
oSheetS=ThisComponent.CurrentController.ActiveSheet
'destination
oSheetD=ThisComponent.Sheets.getByName("Adherents2025")
nRowD =3 'ligne5
'cherche si adhérent exisre déjà
While oSheetD.GetCellByPosition(0, nRowD).String <> ""
If oSheetD.GetCellByPosition(0, nRowD).String = oSheetS.getCellRangeByName("C5").String Then
Msgbox "Adhérent existe déjà"
exit sub
endif
nRowD = nRowD + 1
'
'cherche ligne vide
nRowD = 1 'ligne 2
Wile oSheetD.GetCellByPosition(0,nRowD).String<>""
nRowD = nRowD +1
sRowD=CStr(nRowD +1) 'transforme le n° de ligne en chaine, en incrémentant car pour la ligne 1, l'index est 0
'recopie Nom prénom
oSheetD.GetCellRangeByName("A" & sRowD).String=oSheetS.getCellRangeByName("C5").String
'recopie Adresse
oSheetD.GetCellRangeByName("B" & sRowD).String=oSheetS.getCellRangeByName("C7").String
'recopie Code Postal
oSheetD.GetCellRangeByName("C" & sRowD).String=oSheetS.getCellRangeByName("C9").String
'recopie Statut
oSheetD.GetCellRangeByName("D" & sRowD).String=oSheetS.getCellRangeByName("C11").String
'recopie E-mail
oSheetD.GetCellRangeByName("E" & sRowD).String=oSheetS.getCellRangeByName("C13").String
'recopie Tél. fixe
oSheetD.GetCellRangeByName("F" & sRowD).String=oSheetS.getCellRangeByName("C15").String
'recopie Tél. mobile
oSheetD.GetCellRangeByName("G" & sRowD).String=oSheetS.getCellRangeByName("C17").String
'recopie Fonction
oSheetD.GetCellRangeByName("H" & sRowD).String=oSheetS.getCellRangeByName("C19").String
'recopie Section
oSheetD.GetCellRangeByName("I" & sRowD).String=oSheetS.getCellRangeByName("C21").String
'recopie Date de naissance
oSheetD.GetCellRangeByName("R" & sRowD).String=oSheetS.getCellRangeByName("C23").String
'recopie Age
oSheetD.GetCellRangeByName("S" & sRowD).String=oSheetS.getCellRangeByName("C25").String
'recopie Cotisation
oSheetD.GetCellRangeByName("J" & sRowD).String=oSheetS.getCellRangeByName("O5").String
'recopie Nombre carnets
oSheetD.GetCellRangeByName("K" & sRowD).String=oSheetS.getCellRangeByName("O7").String
'recopie Dons
oSheetD.GetCellRangeByName("L" & sRowD).String=oSheetS.getCellRangeByName("O11").String
'recopie Revue
oSheetD.GetCellRangeByName("M" & sRowD).String=oSheetS.getCellRangeByName("O13").String
'recopie Total tombola
oSheetD.GetCellRangeByName("N" & sRowD).String=oSheetS.getCellRangeByName("O15").String
'recopie Total gébéral
oSheetD.GetCellRangeByName("O" & sRowD).String=oSheetS.getCellRangeByName("O17").String
'recopie Règlement
oSheetD.GetCellRangeByName("P" & sRowD).String=oSheetS.getCellRangeByName("O19").String
'recopie Date cotisation
oSheetD.GetCellRangeByName("Q" & sRowD).String=oSheetS.getCellRangeByName("O21").String
'recopie N° carnets
oSheetD.GetCellRangeByName("U" & sRowD).String=oSheetS.getCellRangeByName("O9").String
'recopie N° carnets
oSheetD.GetCellRangeByName("V" & sRowD).String=oSheetS.getCellRangeByName("P9").String
'recopie N° carnets
oSheetD.GetCellRangeByName("W" & sRowD).String=oSheetS.getCellRangeByName("Q9").String
'recopie N° carnets
oSheetD.GetCellRangeByName("X" & sRowD).String=oSheetS.getCellRangeByName("R9").String
'tri
Tri ("Adherents2025", "A2:S" & sRowD)
Msgbox "Adhérent ajouté"
End sub
Sub Tri(Adherents2025 As string, sPlage As string)
Dim oSheet
Dim oRange
Dim oSortFields(0) as new com.sun.star.util.SortField
Dim oSortDesc(0) as new com.sun.star.beans.PropertyValue
oSheet = ThisComponent.Sheets.getByName(sNomFeuille)
REM Plage à trier
oRange = oSheet.getCellRangeByName(sPlage)
REM Tri par la colonne
oSortFields(0).Field = 0 ' 1ère colonne de la plage
oSortFields(0).SortAscending = True
REM Description du tri
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
REM Effectuer le tri
oRange.Sort(oSortDesc())
End Sub
Cordialement
Claudius723
Hors ligne
#28 Le 06/10/2024, à 18:15
- Rafbor
Re : [Résolu] Message erreur sur variable en zBasic
Claudius, sans tester je vois des erreurs, tu as mal recopié..
Tu as oublié l'instruction Wend pour fermer la 1ère boucle While.
Pareil pour la 2ème boucle et en plus tu as écris Wile au lieu de While
A mon avis tu t'attaques à un projet trop gros pour toi, commence par apprendre les bases du langage, on ne peut pas tout faire à ta place, ou alors fait le faire par un pro, vous avez sûrement des ressources financières dans l'asso.
Xubuntu 22.04 - Mes projets sur Github
Hors ligne
#29 Le 09/10/2024, à 16:26
- claudius723
Re : [Résolu] Message erreur sur variable en zBasic
Bonjour Rafbor, j'ai corrigé suivant tes remarques et tout est rentré dans l'ordre. Je n'ai toujours pas adapté la "Recherche occurrences", mais suivant tes conseils je devrais y arriver !!
A l'attention de Dude, je ne peux toujours pas me connecter au forum OpenOffice, j'ai bien utilisé le lien , mais aucun retour, pourtant j'aurais bien besoin de conseils, car zBasic me joue des tours.
Bien à vous.
Cordialement
Claudius723
Hors ligne
#30 Le 02/12/2024, à 19:03
- claudius723
Re : [Résolu] Message erreur sur variable en zBasic
Bonjour Rafbor, je reviens vers toi au sujet de la macro que tu m'a développé, elle fonctionne très bien la où je l'ai adaptée, sauf que les nombres retranscrits sont tous avec une apostrophe , au format texte, y a t'il une solution pour les avoir en format nombre standard ? j'ai tout essayé et cela vient bien de la macro, c'est la galère pour les calculs !!
Merci pour la solution si il y en a une.
Cordialement
Claudius723
Hors ligne
#31 Le 02/12/2024, à 20:18
- Rafbor
Re : [Résolu] Message erreur sur variable en zBasic
Bonsoir, pour les valeurs numériques, essaie de remplacer "String" par "Value" dans le code, afin de ne recopier que la valeur de la cellule.
Si la cellule destination est déjà formatée au format nombre ou monnaie, il devrait être conservé.
Exemple pour la colonne N, ceci
oSheetD.GetCellRangeByName("L" & sRowD).String=oSheetS.getCellRangeByName("O11").String
devient cela
oSheetD.GetCellRangeByName("L" & sRowD).Value=oSheetS.getCellRangeByName("O11").Value
Xubuntu 22.04 - Mes projets sur Github
Hors ligne
#32 Le 03/12/2024, à 05:26
- claudius723
Re : [Résolu] Message erreur sur variable en zBasic
Merci Rafbor, tout fonctionne parfaitement, je n'ai plus cette satanée apostrophe. Ta modification est géniale !!!!!
Je vais marquer Résolu
A bientôt
Cordialement
Claudius723
Hors ligne